
在adc测量外部电压时,我想实现这样一个效果:如果adc测量值大于1v,则led亮;如果adc测量值小于1v,led灯灭。但无论是采用adc轮询还是adc中断模式,led灯式中亮不起来或者说不能灭掉。但我注释掉led灯相关的代码,从串口中得到adc确实是在测量外部电压值。只是为什么一旦加上led灯的代码,程序就不行了呢? |
中断产生的太过于频繁,用示波器看一次LED的控制引脚。建议不要在中断中处理,再加延时处理。人眼能看过来,最起码得在10ms以上。 |
降低检测的周期,每次检测电压值之后延时0.5~1秒后再检测,这样就能看清楚LED的亮或灭了,否则由于人眼的滞后性,跟不上LED的快速变化,就有可能产生常亮或常灭的假象。 |
中断只采集数据,数据的处理放到主循环里 |
可以将ADC的结果存贮下来,看看大数据的规律再决定LED灯怎样点亮。 |
STM32F373 SDAC1+DMA,数据只能更新一次?
关于stm32g030f6p6 adc3个值问题 temp vrefint vbat
STM32 双ADC同步注入转换模式,模块ADC2没有数据。
STM32G0B1adc+dma采样数据错位
STM32H743+USB3300传输采集的数据前几次会丢包问题
H750/743 VREFBUF配置问题
关于STM32F4的ADC测量不准确
与HAL_ADC_Start_DMA相关的一个十分怪异的问题
双重ADC的DMA请求
ADC硬件过采样是怎么实现的