程序合并后的延迟疑问

2019-07-20 03:52发布

各位大神,我把2个功能的程序合并在一起了,编辑正常,下载正常,运行正常,唯一的问题就是按键操作有延迟。
具体情况是这样的,
1个程序功能是2个按键控制1个LED0灯亮灭,按1键,灯亮,按2键,灯灭。
1个程序功能是0.96 OLED屏显示一些固定文字,图片,变化的数值等,这都是自动变化显示的,不受什么条件控制。
用的控制器是STM32F407ZG,
单独下载,运行这2个程序都很正常,显示正常,按键控制也正常,按键一按下,灯立马亮或者灭了。
但我把这2个程序合并到一起的时候,OLED屏显示依然正常,页面切换,数值变化,都很正常,
按键控制的程序,控制正常,但控制却出现了延迟,具体就是,我按下亮灯键,灯不亮,我继续按下亮灯键不放,估计有10s左右,灯才亮了,按灭灯键,也一样需要按很长时间。
原来单独按键控制程序是,按下亮灯键,立马灯就亮了的,灭灯键按下,也立马灯灭的。
不知道这是什么原因啊,请大神们指导指导!!
谢谢啦!!
混合程序截图如下



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
15937417823
1楼-- · 2019-07-20 04:16
你OLED控制的这一部分程序,下边那么多的延时,每一次跑你这个流程都是从上往下执行一遍,可能你这次按键时候跑到了下边你的第一个delay_ms(1500);,然后下边的OLED_Clear();再往后的函数都需要跑完之后才会回到你的KEY_Scan();这个时候才会得到你的键值;   把你下边那么多的延时去掉你就会发现快了很多;最好是把你的键值获取放到中断里。
温柔的郎
2楼-- · 2019-07-20 09:56
你是说,CPU在执行OLED显示程序时,我们按键,CPU就检测不到了,是吧,赶上刚执行按键程序时,我们按键,就可以检测到了,是这个意思吧。
你说的这个方法我可以试下看看情况,
15937417823
3楼-- · 2019-07-20 13:15
 精彩回答 2  元偷偷看……

一周热门 更多>