[51单片机] 请教问题:串口通信和其他功能冲突。

[复制链接]
1886|13
 楼主| tianqi911 发表于 2018-12-14 10:26 | 显示全部楼层 |阅读模式
串口使用发现一个问题,和按键有冲突。
目前尝试从2个方面去解决。
1.是中断优先级,调高了串口优先级,也试了调高按键优先级,结果发现,不可靠,十几次,大概有1次会死机;
2.逻辑处理,就是逻辑判断,按这个,另一个函数不响应,结果也完犊子了,还是不可靠。

请问高人们有什么彻底解决的方法没有?可靠,鲁棒性强。
mcu5i51 发表于 2018-12-14 10:36 | 显示全部楼层
修改程序框架吧

评论

谢谢高人指导。  发表于 2018-12-17 11:28
ayb_ice 发表于 2018-12-14 11:44 | 显示全部楼层
按键响应这么慢的事件根本就不用中断,主循环轮循就轻松搞定
一看就是框架不行

评论

大神抽空指导,谢谢。  发表于 2018-12-17 11:30
追夜 发表于 2018-12-16 16:13 | 显示全部楼层
按键这种输入功能,就不要放中断里,定时轮询就可以了。而且很容易拓展,你要多少个键都可以不用大改程序。中断都是处理优先级很高,实时性要求高的功能。

评论

谢谢高人指导。  发表于 2018-12-17 11:30
cainiao518 发表于 2018-12-17 11:33 | 显示全部楼层
按键一般用主程序查询即可满足,串口一般用中断响应更及时
 楼主| tianqi911 发表于 2018-12-17 11:38 | 显示全部楼层
阿西吧。我之前问的时候,明明很多人说,按键放到中断里去扫描的。
cainiao518 发表于 2018-12-17 11:44 | 显示全部楼层
tianqi911 发表于 2018-12-17 11:38
阿西吧。我之前问的时候,明明很多人说,按键放到中断里去扫描的。

在中断中扫描肯定可以,关键看逻辑
懒人 发表于 2018-12-17 11:58 | 显示全部楼层
关键的是程序。。。。。框架
mcu51hi2c 发表于 2018-12-19 10:00 | 显示全部楼层
让我来指导你,软件配置一个1MS的中断,进一个中断置sysTime10msFlag为1,在大循环里判断
if(sysTime10msFlag == 1)
{
     sysTime10msFlag = 0;
     //在这里加入按键扫描函数
}
软件就这么简单

评论

@tianqi911 : 嗯,这个不难  发表于 2018-12-19 10:15
呦西。试试先。  发表于 2018-12-19 10:03
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

235

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部