首先在前面的實(shí)例中,在dev文件夾下增加dma.c文件,然后把它加入到該目錄的Makefile里面:
這樣就框架就好了,接下來打開dma.c來實(shí)現(xiàn):
首先打開2440的芯片手冊:
我們要操作的是串口0,對應(yīng)的是通道0:
對應(yīng)的源寄存器:
對應(yīng)的控制寄存器:
該寄存器只有兩個位:
可以看到DMA控制寄存器的[1]位是絕對用的是AHB,還是APB總線。這是從第一章的原理圖:
可以看到內(nèi)存用的是AHB總線。
所以源地址的源寄存器應(yīng)該被設(shè)置為:
目的地址:
目的地址的控制寄存器:
目的寄存器的控制寄存器有三位:
[2]位是控制中斷產(chǎn)生的時機(jī),這里選擇的是默認(rèn),就是設(shè)置為0,當(dāng)計數(shù)到0的時候產(chǎn)生中斷。
[1]位是選擇是AHB或者APB去存放位置,這里是串口,是APB:[1]=1.
[0]位是控制在數(shù)據(jù)傳輸?shù)倪^程中,目的地址是否需要變化。這是就一個串口接收數(shù)據(jù),所以地址不用變化,所以[0]=1。
上面是DMA發(fā)送和接受的寄存器設(shè)置,還有一個DMA控制寄存器的設(shè)置:
這里是DCON0寄存器的[26:24]:
是設(shè)置DMA源的,這是使用的是UART0,所以[26:24]=001。
[23]位是表示DMA源是軟件還是硬件,這是我們是串口,是硬件,所以是1:
[22]位控制的是,當(dāng)你發(fā)送完數(shù)據(jù)后是否重新發(fā)送,這里是不用重復(fù)發(fā)送的,所以設(shè)置1:
TC[19:0]位是用來告訴DMA發(fā)送數(shù)據(jù)的大小,DMA才知道啥時候結(jié)束。上面Hello FORFISH的長度為13,所以:
最終是:
到這里DMA的control寄存器的設(shè)置就結(jié)束了。
最后的函數(shù):
該函數(shù)就設(shè)置好了DMA控制器,接下來就是要設(shè)置打開DMA,當(dāng)DMA打開之后就可以進(jìn)行數(shù)據(jù)傳輸了。
這里打開DMA只需要將DMASKTRIG0寄存器的[1]位設(shè)置為1即可:
涉及的寄存器列表:
注意:最后一個UTXH0是要該寄存器的地址,而不是寄存器的值。定義的時候注意。
在main.c里調(diào)用DMA的操作函數(shù):
修改好了之后make:
燒寫到開發(fā)板,NandFlash啟動:
可以看到,通用DMA的方式,把字符串傳遞到了串口了,實(shí)現(xiàn)DMA的機(jī)制。
上一篇:18.DMA-6410
下一篇:16.6410DMA簡述
推薦閱讀最新更新時間:2025-06-07 23:47




設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- API調(diào)用小記(Touchdesigner和ESP32)
- 關(guān)于ESP32/8266使用async-mqtt-client庫的一些基本介紹
- LTM4602HV 演示板、28V、6A 降壓模塊穩(wěn)壓器
- PCB書簽 尺子 卡片
- PeanutPI
- 平衡自行車+獨(dú)輪車
- AM1DR-1209SZ 9V 1 瓦 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- NCV33074ADR2G 直流耦合反相放大器最大輸出擺幅的典型應(yīng)用
- 【明日方舟】羅德島本艦主控板V6.2
- DC795A,使用 LT5527EUF 4.5V 至 5.25V 高線性下變頻混頻器的演示板
- XL4016可調(diào)恒壓恒流實(shí)驗(yàn)電源
- 帶內(nèi)部開關(guān)的 PAM2863 2A LED 驅(qū)動器的典型應(yīng)用
- ?意法半導(dǎo)體大巴窯工廠落地創(chuàng)新冷卻系統(tǒng),提升可持續(xù)發(fā)展能力
- Nordic Semiconductor聯(lián)同Omnispace和Gatehouse Satcom完成5G NB-IoT衛(wèi)星演示
- 英偉達(dá)開啟“攻城略地”模式,擬在歐洲建設(shè)20座AI工廠
- 臺積電:日本JASM第二晶圓廠預(yù)計今年下半年動工
- 工信部:支持車企“60天賬期”承諾,促進(jìn)產(chǎn)業(yè)健康發(fā)展
- 全球十大芯片代工廠最新排名!中芯國際沖擊世界第二
- 未來數(shù)字化工廠:重塑制造業(yè)格局
- 面對快速演進(jìn)的 GenAI 模型,Gartner發(fā)布中國企業(yè)需做出的三項(xiàng)基礎(chǔ)設(shè)施關(guān)鍵決策
- 摩爾斯微電子與成都惠利特攜手合作,利用 Wi-Fi HaLow革新物聯(lián)網(wǎng)的連接
- 羅克韋爾自動化推出 PharmaSuite 12.00,加速實(shí)現(xiàn)安全、可擴(kuò)展的部署