現(xiàn)在對ADC4基于DMA鏈表模式做演示,其實就一個節(jié)點。
選擇ADC4的4個內部信號通道,掃描模式,連續(xù)轉換,DMA傳輸轉換結果,并令DMA工作在外設字到內存字的循環(huán)模式。使用CubeMx進行配置。其中DMA通道使用Channel 0。對于內部信號的采樣,往往有最小采樣時間要求,我這里的演示隨便選了個參數(shù),具體應用時請參考數(shù)據(jù)手冊及當時ADC時鐘具體擬定。特此提醒!
關于DMA鏈表模式的配置在CubeMx界面里的Utility菜單下。
相關用戶代碼:
/* Private variables ---------------------------------------------------------*/
ADC_HandleTypeDef hadc4;
DMA_NodeTypeDef Node_GPDMA1_Channel1;
DMA_QListTypeDef List_GPDMA1_Channel1;
DMA_HandleTypeDef handle_GPDMA1_Channel0;
/* USER CODE BEGIN PV */
/* USER CODE BEGIN 2 */
HAL_PWREx_EnableVddA(); //add it manually with lower cubeMx version
MX_ADC4Queue_Config();
__HAL_LINKDMA(&hadc4, DMA_Handle, handle_GPDMA1_Channel0);
HAL_DMAEx_List_SetCircularMode(&ADC4Queue);
if (HAL_DMAEx_List_LinkQ(&handle_GPDMA1_Channel0, &ADC4Queue) != HAL_OK)
{
Error_Handler();
}
if (HAL_ADC_Start_DMA(&hadc4,
(uint32_t *)ADC4_Result,
(ADC_BUFFRER_SIZE)
) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN WHILE */
結果驗證【顯示了2組數(shù)據(jù)】:
最后還提醒下,如果CubeMx版本比較低時,HAL_PWREx_EnableVddA()函數(shù)需要自己手動添加。我目前CubeMx 6.9.0版本已經(jīng)不用手動添加了,創(chuàng)建工程時會將其自動生成于相應位置。
-
mcu
+關注
關注
146文章
17734瀏覽量
358557 -
adc
+關注
關注
99文章
6613瀏覽量
547823 -
STM32
+關注
關注
2285文章
10986瀏覽量
361454
發(fā)布評論請先 登錄
基于LL庫實現(xiàn)STM32U5 LPTIM功能

請問STM32G4的ADC1,ADC2,ADC3,ADC4可以同時工作在獨立模式嗎?
ADC1的掃描模式,DMA傳輸問題,求大神指點
STM32U5 ADC校準功能問題求解
STM32U5系列使用LPBAM進行功耗優(yōu)化

STM32U5 ADC+DMA配置演示

實戰(zhàn)經(jīng)驗 | STM32U5 ADC 自校準不成功的問題分析

評論