娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年12月10日(星期二)

正在發生

2018年12月10日 | STM32_DMA 標準初始化設置解釋

發布者:科技創新實踐者 來源: eefocus關鍵字:STM32  DMA  標準初始化設置 手機看文章 掃描二維碼
隨時隨地手機看文章

DMA 全稱是:Direct Memory Access;根據 ST 公司提供的相關信息,DMA是STM32中一個獨立于 Cortex-M3 內核的模塊,有點類似于 ADC、PWM、TIMER 等模塊;主要功能是起通信“橋梁”的作用,可以將所有外設映射的寄存器“連接”起來,這樣就可以高速訪問各寄存器,其傳輸不受 CPU 的支配,傳輸還是雙向的;例如,從“表面”上看,它可以將 flash 中的數據與儲存器中變量建立通訊,還可以將某一個外設的寄存器或緩沖器與另一個外設的寄存器或緩沖器建立雙向通訊,有點像把外設硬件之間用“導線”連接在一起了。其間的通訊不占 CPU 資源,訪問速度快,對于實時性強的應用將是一個很好的選擇。下面代碼是一個標準 DMA 設置,當然實際應用中可根據實際情況進行裁減:


//開啟時鐘,否則初始化無效。


RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);


DMA_DeInit(DMA_Channel1);


上面這句是給 DMA 配置通道,根據 ST 提供的資料,STM3210Fx 中 DMA 包含 7 個通道(CH1~CH7),也就是說可以為外設或 memory 提供 7 座“橋梁”;


DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;


DMA_PeripheralBaseAddr 是 DMA_InitStructure 結構體中一個數據成員,給 DMA 一個起始地址,好比是一個 buffer 起始地址,ADC1_DR_Address 是我定義的一個地址變量;


DMA_InitStructure.DMA_MemoryBaseAddr = (u32)ADC_ConvertedValue;


上面這句很顯然是 DMA 要連接在 Memory 中變量的地址,ADC_ConvertedValue 是我自己在memory 中定義的一個變量地址;


DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;


上面的這句是設置 DMA 的傳輸方向,就如前面所說的,DMA 可以雙向傳輸,也可以單向傳輸,這里設置的是單向傳輸,如果需要雙向傳輸:把 DMA_DIR_PeripheralSRC 改成DMA_DIR_PeripheralDST 即可。


DMA_InitStructure.DMA_BufferSize = 2;


上面的這句是設置 DMA 在傳輸時緩沖區的長度,前面有定義過了 buffer 的起始地址:ADC1_DR_Address ,為了安全性和可靠性,一般需要給 buffer 定義一個儲存片區,這個參數的單位有三種類型:Byte、HalfWord、word,我設置的 2 個 half-word(見下面的設置);32位的 MCU 中 1 個 half-word 占 16 bits。


DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;


上面的這句是設置 DMA 的外設遞增模式,如果 DMA 選用的通道(CHx)有多個外設連接,需要使用外設遞增模式:DMA_PeripheralInc_Enable;我的例子里 DMA 只與 ADC1 建立了聯系,所以選用 DMA_PeripheralInc_Disable。


DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;


上面的這句是設置DMA的內存遞增模式,DMA 訪問多個內存參數時,需要使用DMA_MemoryInc_Enable,當DMA只訪問一個內存參數時可設置成 :DMA_MemoryInc_Disable。


DMA_InitStructure.DMA_PeripheralDataSize =


DMA_PeripheralDataSize_HalfWord;


上面的這句是設置 DMA 在訪問時每次操作的數據長度。有三種數據長度類型,前面已經講過了,這里不在敘述。


DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;


與上面雷同。在此不再說明。


DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;


上面的這句是設置 DMA 的傳輸模式:連續不斷的循環模式,若只想訪問一次后就不要訪問了(或按指令操作來反問,也就是想要它訪問的時候就訪問,不要它訪問的時候就停止),可以設置成通用模式:DMA_Mode_Normal。


DMA_InitStructure.DMA_Priority = DMA_Priority_High;


上面的這句是設置 DMA 的優先級別:可以分為 4 級:VeryHigh,High,Medium,Low.


DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;


上面的這句是設置 DMA 的 2 個 memory 中的變量互相訪問的


DMA_Init(DMA_Channel1,&DMA_InitStructure);


前面那些都是對 DMA 結構體成員的設置,在次再統一對 DMA 整個模塊做一次初始化,使得 DMA 各成員與上面的參數一致。


DMA_Cmd(DMA_Channel1,ENABLE);


使能啟動。


要使 DMA 與外設建立有效連接,這不是 DMA 自身的事情,是各個外設的事情,每個外設都有 一個 xxx_DMACmd(XXXx,Enable )函數,如果使 DMA 與 ADC 建立有效聯系,就使用ADC_DMACmd(ADC1,Enable); (這里我啟用了 ADC 中的 ADC1 模塊)。



關鍵字:STM32  DMA  標準初始化設置 引用地址:STM32_DMA 標準初始化設置解釋

上一篇:STM32學習之通用定時器中斷
下一篇:STM32 通用定時器作為輸入捕獲 學習筆記

推薦閱讀

隨著袖珍型 E5 轉舌式門鎖的加入,索斯科轉舌式門鎖產品系列得以再次拓寬。與索斯科標準型 E5 轉舌式門鎖系列相比,袖珍型 E5 轉舌式門鎖可降低30%占用空間,成為狹小空間應用的理想之選。袖珍型 E5轉舌式門鎖索斯科袖珍型 E5 轉舌式門鎖符合 NEMA 4 和 IP65 標準,能提供中到高級的防塵防水性能。袖珍型 E5 轉舌式門鎖價格實惠、使用簡便...
12月9日,日本發那科在漢投資興建的華中研發生產中心項目正式投產。拉開世界工業機器人巨頭搶灘武漢智能裝備產業序幕。 日本發那科是全球自動化工廠、機器人和智能機械的知名制造商,與abb、庫卡、安川并稱為工業機器人行業“四大巨頭”。 2018年7月,上海發那科投資1億元在武漢開發區興建華中研發生產基地,項目占地1.4萬平方米,打造集機器人銷售、...
未來出行交通工具主要包括電動汽車、卡車和飛機等,但單一電池設計顯然無法滿足復雜的需求。未來幾十年,可能需要根據具體用途來定制電池,因此要盡可能準確地了解各類電池的內部狀態。(圖片來源:techxplore)每種電池的工作原理都相同,即由離子(也就是帶電荷的原子或分子)通過電解液將電流從負極傳送到正極,然后再返回來。通過準確了解不同的離子如...
12月8日,天風國際分析師郭明錤發布最新研報,曝光了數款蘋果即將發布的新品,包括想新款iPhone SE、新一代Apple Watch等等。  郭明錤在研報中指出,蘋果將于2022年上半年發布新款iPhone SE,采用4.7英寸屏幕,配備3GB內存。  2022年下半年,新一代Apple Watch將于大家見面,包括Apple Watch 8、新款Apple Watch SE與極限運動版本。...

史海拾趣

問答坊 | AI 解惑

求V型MEMS熱微執行器在實際應用中的數據

我想找些V型MEMS熱微執行器在實際應用中有關[url=http://bbs.eeworld.com.cn/thread-75155-1-1.html]驅動[/url]力和[url=http://bbs.eeworld.com.cn/thread-75155-1-1.html]驅動[/url]位移的具體數據,網上一直沒找到,在這希望各位幫幫忙,謝謝咯~ ...…

查看全部問答∨

DSP+BUILDER與VHDL混合設計方法實現DDS信號源

本帖最后由 paulhyde 于 2014-9-15 08:55 編輯 DSP+BUILDER與VHDL混合設計方法實現DDS信號源  …

查看全部問答∨

怎么知道cc1100的數據已經發送成功?

我用MSP430的spi口控制cc1100。數據已經寫到spi口的緩沖區內。請問怎么知道數據應經通過cc1100發送出去? void main(void) {   INT8U  txBuffer[4];               &nbs ...…

查看全部問答∨

我的mfc程序為什么一上來編譯就有很多錯誤?

我在定制好CE6.0的平臺后,建立了一個MFC Smart Deviece Application 。選的Dialog其他的沒有設置。然后進去了。我想看看是否有錯,創建完之后我就build solution一下,但是報出了57個錯誤和11個警告。我都瘋了。會不會是因為我的SDK沒有定制好? ...…

查看全部問答∨

LED創新設計改變生活

  特意設計了一款MJ經典造型的帽子臺燈,將MJ表演時常帶的帽子作為臺燈燈罩,內置,而巧妙之處在于就是傾斜帽子的角度,將帽子向上掀起臺燈就會亮起,相反將帽子向下壓臺燈就會熄滅。   加上這款LED科技的星光浴缸Nirvana,能使你洗 ...…

查看全部問答∨

有在EK-STM32F下成功移植oc/os的朋友嗎

是否J-LINK II不支持os仿真?請斑竹給一下相關例程參考~…

查看全部問答∨

老夫琢磨了好久,還是打算拋棄NXP用ST了

需求基本類似,所以搖擺了好多年 …

查看全部問答∨

求解看門狗間隔延時函數問題??

請問在實際應用中,怎么把看門狗定時器作為程序中的延時函數來使用呢?該如何設置呢?請各位高手指教!!!…

查看全部問答∨

福利!福利!MSP430數學庫下載

TI目前提供了書序庫下載,配合CCS使用。16位的MCU畢竟是有其性能上限的,目前的這個庫提供的浮點計算可以提高26倍的計算性能(來自介紹說明)。 不過還沒有驗證過,但是數學庫的提供明顯更方便使用了。 目前僅支持:5系列、6系列和FRAM系列,附件 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 朝阳市| 佛坪县| 曲阜市| 澄迈县| 静安区| 新闻| 雅江县| 开封县| 清原| 罗甸县| 洞头县| 嵩明县| 斗六市| 罗源县| 凌云县| 靖远县| 吉安市| 万源市| 东乌| 读书| 邵武市| 禹州市| 西华县| 周宁县| 太康县| 封丘县| 大冶市| 栖霞市| 临海市| 云霄县| 洪泽县| 灵璧县| 弋阳县| 萝北县| 蕲春县| 无为县| 文水县| 灵武市| 喀喇| 荔波县| 民县|