stm32__学习笔记___写一个钟表程序的教训和经验

今天写了一个钟表+闹钟功能的程序,发现了几个问题

①:

在写按键调时间的中断函数时,由于中断优先级没有考虑清楚,导致程序锁死

stm32__学习笔记___写一个钟表程序的教训和经验_第1张图片

在按键代码忘记加延时消抖,导致有时不稳定
在实现闹钟功能的代码部分,由于我加了个延时3秒(拉高蜂鸣器),导致程序在此锁死,
我猜想可能是我的计数程序被打乱了
在算法部分由于设计不当,导致按键过快会使屏幕来不及显示
(因为我把刷新代码加在了定时器计数到一秒时所触发的代码部分)

------------------------------------------------------------------------

********************记一个非延时的按键消抖方法*******************************

注:按键没有消抖使运行时调数十分不稳,但常规的延时消抖又不知为何使程序锁死(猜想仍是计数被打乱),今天想到一个办法:在定时器处除了记秒的变量再加一个变量,让它一直加下去,直到按键按下并且判断此变量超过150(对应300毫秒,过滤掉300ms以内的抖动),此时再执行程序并将变量归零以供下次判断。

你可能感兴趣的:(stm32__学习笔记)