在adc测量外部电压时,我想实现这样一个效果:如果adc测量值大于1v,则led亮;如果adc测量值小于1v,led灯灭。但无论是采用adc轮询还是adc中断模式,led灯式中亮不起来或者说不能灭掉。但我注释掉led灯相关的代码,从串口中得到adc确实是在测量外部电压值。只是为什么一旦加上led灯的代码,程序就不行了呢? |
中断产生的太过于频繁,用示波器看一次LED的控制引脚。建议不要在中断中处理,再加延时处理。人眼能看过来,最起码得在10ms以上。 |
降低检测的周期,每次检测电压值之后延时0.5~1秒后再检测,这样就能看清楚LED的亮或灭了,否则由于人眼的滞后性,跟不上LED的快速变化,就有可能产生常亮或常灭的假象。 |
中断只采集数据,数据的处理放到主循环里 |
可以将ADC的结果存贮下来,看看大数据的规律再决定LED灯怎样点亮。 |
STM32H743 ADC可采集正弦波的最大频率
ADC (built-in) microcontroller选哪个芯片最好?
STM32C031C6过采样ADC体验
ADC采样交流电问题
Adc初始化后用HAL_ADCEx_Calibration_Start函数进行校准,一直返回失败,为什么?
L432ADC量程一半的数值异常
STM32H743-adc中断问题
STM32F407 ADC采样,实验电源供电,测量干电池,12个bit能稳定10个bit么?
STM32H743-ADC设置PLL2为时钟源开启不了
STM32H730的ADC管脚会被哪些管脚影响?