日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2024年09月11日(星期三)

正在發(fā)生

2019年09月11日 | STM32F4 HAL庫DMA學習

發(fā)布者:BeaLaity0170 來源: eefocus關鍵字:STM32F4  HAL庫  DMA 手機看文章 掃描二維碼
隨時隨地手機看文章

用了一段時間HAL庫,不知道是不是用外設固件庫時間長一點的原因,個人感覺沒有固件庫來的直接??碊MA部分看的有點亂,捋一下。


DMA的使用方法及細節(jié)直接看官方的手冊就可以了,注意的是如果原地址和目的地址的數據長度不一樣的話只能使用FIFO模式,直接模式下原地址和目的地址的數據長度必須一致。


主要是簡單整理一下使用DMA的初始化過程,以串口發(fā)送使用DMA為例:


 (1)  定義一個外設的句柄,對外設的基本參數、IO、時鐘、中斷等進行初始化。


UART_HandleTypeDef UART1_Handler; 


               ....

 HAL_UART_Init(&UART1_Handler);

調用外設的初始化函數完成對外設的初始化


 (2)  定義一個 DMA的句柄,對DMA的數據流、通道、傳輸方向、數據長度等基本參數進行初始化


DMA_HandleTypeDef     UART1TxDMA_Handler; 


                      ....

HAL_DMA_Init(&UART1TxDMA_Handler);


調用初始化函數完成對句柄的填充。


 (3)  使用HAL庫中對DMA的一個宏定義完成外設發(fā)送DMAT或者接收DMAR和第二步的DMA句柄進行關聯


__HAL_LINKDMA(&UART1_Handler,hdmatx,UART1TxDMA_Handler);           

  每個外設的句柄結構體中都一個該外設關于DMA相關的設置:


 DMA_HandleTypeDef      *hdmatx;          UART TX 的DMA句柄參數

 DMA_HandleTypeDef      *hdmarx;          UART RX 的DMA句柄參數


 使用__HAL_LINKDMA 宏定義的作用就是將第二步初始化的DMA句柄賦值給外設的發(fā)送或者接收DMA句柄,并且外設的句柄(第一步定義的)賦給DMA結構體中的.parent 參數,調用DMA的函數都會間接調用 

             

 UART1TxDMA_Handler.parent->hdmatx  

            

 對DMA的個別寄存器的參數進行填充,比如調用 HAL_DMA_Start()函數就會調用DMA_SetConfig()函數配置數據個數、源地址、目的地址等。而hdmatx 和第二步的DMA句柄是一模一樣的,感覺最后轉了一圈又轉回會來了。。。

  (4)  外設初始化、DMA初始化、外設和DMA進行關聯、外設使能DMA發(fā)送或者接收、DMA調用函數開始發(fā)送或者接收。


 個人感覺有時候HAL庫的確有些冗余了,這時候可能就需要部分進行寄存器操作了。


二、使用過程總結


1、傳輸數據數目設置


 注意傳輸數據的個數的設置:如果源的數據寬度和目標數據寬度不一樣,即PSIZE、MSIZE不相等時,DMA_SXNDTR寄存器配置要傳輸的數據項數目的寬度等于外設總線的寬度(和傳輸方向無關)。例如外設的寬度設置為字,存儲器的寬度設置為半字,假如要傳輸100個字節(jié)的數據,NDTR寄存器配置要傳輸的數據數目 100/4.外設寬度是字=4個字節(jié)。


2、DMA初始化


 HAL_DMA_Init() ;   初始化函數中會使能所有的中斷,如果不想用中斷,可以在初始化之后關閉。初始化完成后會自動使能流的DMA。 




三、調試過程問題解決


直接模式中出現FIFO溢出錯誤,可能是DMA的源地址或者目的地址設置有問題。


關鍵字:STM32F4  HAL庫  DMA 引用地址:STM32F4 HAL庫DMA學習

上一篇:發(fā)現的STM32——SPI的問題
下一篇:STM32 SPI發(fā)送與接收用一個函數實現的問題

推薦閱讀

據外媒報道,隨著汽車電氣化轉型、政府的政策出臺及技術的發(fā)展,自動駕駛車輛的發(fā)展將如火如荼。在未來十年內,車用級片上系統(tǒng)(系統(tǒng)級芯片,SoC)需求將大幅提升。據估計,全球片上系統(tǒng)市場的年復合增長率將達到7.7%,預計2028年該市場的市值將達到268億美元。2018-2028年間,先進駕駛輔助系統(tǒng)(ADAS)細分市場的年復合增長率最高。據估計,車用級片上系...
本章通過兩個例程介紹STM32的模數轉換器(ADC),第一個通過ADC采集內部溫度傳感器通道電壓,然后得出MCU內部溫度。第二個通過DMA的方式采集兩個ADC通道電壓。1.ADC本章程序在串口printf工程的基礎上修改,復制串口printf的工程,修改文件夾名。擊xxx.ioc打開STM32cubeMX的工程文件重新配置。ADC1外設選擇溫度傳感器通道。ADC1配置如下,選擇默認設置。其D...
摘要:2020年2月28日,《是該啟動“新”一輪基建了》一文發(fā)布,引發(fā)市場對“新基建”的廣泛關注和討論,隨后央視新聞將充電樁列為七大新基建領域之一。 一、充電樁現狀 新基建主要發(fā)力于科技端,包含5G基站建設、特高壓、城際高速鐵路和城際軌道交通、新能源汽車充電樁、大數據中心、人工智能和工業(yè)互聯網七大領域。而充電樁作為電動汽車的補能基礎設施,...
智東西(公眾號:zhidxcom)作者 | 健恩編輯 | 云鵬智東西9月11日報道,昨天,世界機器人大會再次在北京亦莊拉開帷幕,智東西記者一大早便跨越整個北京城來到這里打探這場大會的最新消息。世界機器人大會自2015年開始舉辦,迄今為止已成功舉辦過5次。它不僅是國內一年一度規(guī)模最大的機器人產業(yè)頂級展會,也是國內機器人產業(yè)風向的集中展示。智東西了解...

史海拾趣

小廣播
設計資源 培訓 開發(fā)板 精華推薦

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

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

更多每日新聞

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved