本项目用DMA采集ADC的8个通道数据,配置ADC通道代码如下:
void adc_channel_set(ADC_HandleTypeDef *adc_handle, uint32_t ch, uint32_t rank, uint32_t stime)
{
/* 配置对应ADC通道 */
ADC_ChannelConfTypeDef adc_channel;
adc_channel.Channel = ch; /* 设置ADCX对通道ch */
adc_channel.Rank = rank; /* 设置采样序列 */
adc_channel.SamplingTime = stime; /* 设置采样时间 */
HAL_ADC_ConfigChannel(adc_handle, &adc_channel); /* 初始化ADC通道 */
}
ch表示配置的是哪个通道,DMA一个周期采集多个通道,rank表示该通道在一个周期里面采集序号,如本项目配置的采集顺序如下:
adc_channel_set(&g_adc_nch_dma_handle, ADC_CHANNEL_2