STM32F103 ADC1的2个通道检测,不通过DMA ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_239Cycles5); ADC_SoftwareStartConvCmd(ADC1,ENABLE); while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)); ad1=ADC_GetConversionValue(ADC1); ad1=(ad1*3300)>>12; systick_delay_ms(100); ADC_RegularChannelConfig(ADC1,ADC_Channel_1,2,ADC_SampleTime_239Cycles5); ADC_SoftwareStartConvCmd(ADC1,ENABLE); while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)); ad2=ADC_GetConversionValue(ADC1); ad2=(ad2*3300)>>12; systick_delay_ms(100); 想要的结果是ad1存放通道1的数据,ad2存放通道2的数据 实际运行:ad2里一下是通道1的数据,一下是通道2的数据??正确的程序应该怎么写?必须通过DMA来获取吗?? |
2、2个ADC转换使用扫描模式即可;
3、楼主的代码貌似ADC初始化的一部分,其中转换数据的处理放初始化里没有意义,这个初始化函数只会执行一次。数据的处理应该放在在读取ADC转换值的函数中进行处理。
扫描方式ADC ST官方有代码可参考
评分
查看全部评分
我参考下,谢谢您
评分
查看全部评分
评分
查看全部评分