首先依舊使用STcubeMX配置一下工程
我這裏使用的是ADC1的多個通道,具體看下面配置圖,比較簡單,因爲我使用了DMA,配置好ADC之後還需要配置一下DMA。
1,ADC配置
2,DMA配置,需要配置通道以及方向,是外設到內存還是內存到內存,以及緩存區數據寬度。
3,配置好以上後,我們還需要手動添加外設地址以及內存地址等
下面看代碼:
LL_DMA_SetDataLength(DMA1,LL_DMA_CHANNEL_1,NOFCHANEL);
LL_DMA_SetPeriphAddress(DMA1,LL_DMA_CHANNEL_1,LL_ADC_DMA_GetRegAddr(ADC1, LL_ADC_DMA_REG_REGULAR_DATA));
LL_DMA_SetMemoryAddress(DMA1,LL_DMA_CHANNEL_1,(uint32_t)&ADC_ConvertedValue);
LL_DMA_EnableChannel(DMA1,LL_DMA_CHANNEL_1);
LL_ADC_Enable(ADC1);
// ADC開始校準
LL_ADC_StartCalibration(ADC1);
// 等待校準完成
while(LL_ADC_IsCalibrationOnGoing(ADC1));
//設置ADC組通過DMA定期轉換數據傳輸
LL_ADC_REG_SetDMATransfer(ADC1,LL_ADC_REG_DMA_TRANSFER_UNLIMITED);
設置好以上之後,DMA會自動開始搬運,我們查看ADC_ConvertedValue數組就可以看到數據了。