在adc测量外部电压时,我想实现这样一个效果:如果adc测量值大于1v,则led亮;如果adc测量值小于1v,led灯灭。但无论是采用adc轮询还是adc中断模式,led灯式中亮不起来或者说不能灭掉。但我注释掉led灯相关的代码,从串口中得到adc确实是在测量外部电压值。只是为什么一旦加上led灯的代码,程序就不行了呢? |
中断产生的太过于频繁,用示波器看一次LED的控制引脚。建议不要在中断中处理,再加延时处理。人眼能看过来,最起码得在10ms以上。 |
降低检测的周期,每次检测电压值之后延时0.5~1秒后再检测,这样就能看清楚LED的亮或灭了,否则由于人眼的滞后性,跟不上LED的快速变化,就有可能产生常亮或常灭的假象。 |
中断只采集数据,数据的处理放到主循环里 |
可以将ADC的结果存贮下来,看看大数据的规律再决定LED灯怎样点亮。 |
STM32L431进入STOP1模式后ADC产生多余功耗
关于STM32F4的ADC测量不准确
STM32G0B1adc+dma采样数据错位
STM32G474 ADC无法正常启动转换
ADC每次开始采样直流电压时,会出现尖峰波形?
ADC各个通道转换
STM32F405使用LL库建立SPI通讯报溢出是什么原因?
cubemx安装HAL库时要账号登录,点击注册,显示错误,ST官网点击注册也是显示错误,请问是什么问题?
STM32F373的PGA(SDADC前置)怎么校正
STM32CubeMx中的ADC和模拟输入