番禺建設網(wǎng)站服務seo兼職招聘
目標
? ? ? ? ADC 5個通道,希望每1秒采集一遍;
CUBEMX 配置
添加代碼?
#define ADC1_CHANNEL_CNT 5 //采樣通道數(shù)
#define ADC1_CHANNEL_FRE 3 //單個通道采樣次數(shù),用來取平均值
uint16_t adc1_val_buf[ADC1_CHANNEL_CNT*ADC1_CHANNEL_FRE]; //傳遞給DMA存放多通道采樣值的數(shù)組
/* USER CODE BEGIN 2 */HAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc1_val_buf, (ADC1_CHANNEL_CNT * ADC1_CHANNEL_FRE));bInit();/* USER CODE END 2 */
/* USER CODE BEGIN WHILE */while (1){BOS_PERIODIC_TASK(cycle_run, 1000); bExec();/* USER CODE END WHILE */
/* USER CODE BEGIN 4 */void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc)
{if(hadc->Instance == ADC1){}b_log("HAL_ADC_ConvCpltCallback \r\n");
}/* USER CODE END 4 */
運行效果
因為每個通道采集3次,所以3個cycle_run觸發(fā)一次 中斷;
結論
? ? 符合預期效果;