stm32延时如何不影响其他程序

stm32延时如何不影响其他程序,第1张

可以通过使用STM32的定时器模块来实现延时,这样在定时器中设置延时时间后会产生定时器中断,并且不影响其他程序的运行。通过在定时器中断函数里插入你想要的代码,就可以实现在设置的延时时间后执行相应的函数代码。

延时程序的作用就是等待,以适应某些低速器件的要求,有时也可以作为纯粹的计时

如向液晶屏1602送数据,液晶屏是低速器件,单片机是高速器件,单片机每送完一个数据,过一小会儿液晶屏才能处理完,才能继续给它发数据,这期间单片机就要等它忙完,程序可以查询它是否忙,也可以不查询而给一个充足的延时后就认为它忙完了,继续给它送数据 如果它处理需500US,我们给它1mS延时,肯定够了

还有如果测频率,我们要计单位时间内的脉冲个数,如果我们不用定时器,也可以用汇编语言写一个精确的延时函数,脉冲计数器打开后,延时500ms或1000ms,关闭计数器,读计数器的值,就可计算出频率

还有LED闪烁指示工作状态,人眼能观察的闪烁频率是很低的,这时我们就让程序执行:

开LED--延时--关LED--延时--开LED.....

不延时的话我们直接反复开关LED,看到的是LED一直在亮,但亮度不高

总之,需要延时的场合太多了,有的是US级的,有的是ms级的

很短的延时可用1至2个NOP语句代替,精确延时一般用定时器


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11850362.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存