ADC多通道逐次转换(不用DMA)
2017-12-07 18:16
323 查看
之前看到一篇文章【STM32F10x_ADC三通道逐次转换(单次、单通道软件触发)】原博主用的是规则组间断模式,但是我参考他的例程自己读取出来的结果每次都只有最后一通道的值,原因暂时不明。
因为我用的通道不多,就用了一个比较笨的方法。
ADC配置如下:
切换并使能ADC通道的函数如下:
读取数据在中断子程序中完成:
因为我用的通道不多,就用了一个比较笨的方法。
ADC配置如下:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); ADC_DeInit(ADC1); /* ADC1 configuration ----------*/ ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = ENABLE; ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); ADC_Cmd(ADC1, ENABLE); ADC_ResetCalibration(ADC1); while(ADC_GetResetCalibrationStatus(ADC1)); ADC_StartCalibration(ADC1); while(ADC_GetCalibrationStatus(ADC1));
切换并使能ADC通道的函数如下:
void ADC_Time(void) { if(++AdcTime > 10) { AdcTime = 0; Adc1Flag =~AdcFlag; if(Adc1Flag) { ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_41Cycles5); ADC_SoftwareStartConvCmd(ADC1, ENABLE); } else { ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 1, ADC_SampleTime_41Cycles5); ADC_SoftwareStartConvCmd(ADC1, ENABLE); } } }
读取数据在中断子程序中完成:
void ADC_Handler(void) { if(ADC_GetITStatus(ADC1,ADC_IT_EOC) == SET) { ADC_ClearITPendingBit(ADC1,ADC_IT_EOC); if(Adc1Flag) { Value1=ADC_GetConversionValue(ADC1); AdcOverFlag1 = 1; } else { Value2=ADC_GetConversionValue(ADC1); AdcOverFlag2 = 1; } } }
相关文章推荐
- STM32F10x_ADC三通道逐次转换(单次、单通道软件触发)
- STM32F10x_ADC三通道DMA连续转换(3通道、软件单次触发)
- STM32F10x_ADC三通道DMA连续转换(3通道、软件单次触发)
- DMA+ADC单通道转换、多通道转换
- STM32F10x_ADC三通道逐次转换(单次、单通道软件触发)
- STM32F10x_ADC三通道逐次转换(单次、单通道软件触发)
- 经典STM32 ADC多通道转换
- LPC1788--ADC连续中断多通道转换程序学习分析
- stm32ADC非DMA模式的多通道采集与注入通道的采集
- 【STM32】用DMA实现多路ADC通道数据采集
- STM32F407IG多通道ADC-DMA采样
- STM32F1xx 多路ADC 使用DMA转换结果顺序错乱问题
- STM32 ADC单通道与多通道_DMA学习笔记
- [置顶] STM32的ADC1采集多条通道,可以不使用DMA功能吗?
- stm32AD单通道与多通道转换(DMA)
- STM8L051之ADC+DMA两通道数据采样错位问题
- STM32F404的ADC之DMA的单通道
- STM32 多通道ADC采样,采用Timer1进行采样率控制,利用DMA进行传输
- stm32 ADC模数转换 ADC多通道 ADC DMA
- STM32F407的ADC之DMA多通道