你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

串口中断和定时器中断问题

[复制链接]
qazplm3218 提问时间:2019-1-19 14:02 /
矩阵按键扫描采用定时器中断扫描,100m扫描一次,现象是当串口有数据接收时,按键就不扫描了,数据接收完成后才能继续扫描按键,导致按键扫描不连续,有停顿现象,设置了中断优先级也是一样的现象,该怎么处理按键扫描?????
收藏 评论8 发布时间:2019-1-19 14:02

举报

8个回答
any012 回答时间:2019-1-19 14:22:54
扫描程序在定时器中断函数里吗?

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

qazplm3218 回答时间:2019-1-19 17:47:00
扫描程序在主程序里判断100ms定时器里的标志位进行按键扫描
radio2radio 回答时间:2019-1-19 20:14:59
100ms才扫描一次键盘,就是没有串口的干扰,也是太慢了,肯定会发生丢失按键动作现象。
建议提高扫描频率,你的MCU不会慢到不堪负荷吧。 还有别的方法,就是GPIO直接触发键盘中断。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

qazplm3218 回答时间:2019-1-19 21:52:01
按键扫描频率提高到50ms也有丢失按键动作的现象。还有其他方法吗???
qazplm3218 回答时间:2019-1-19 21:53:45
按键扫描频率提高到50ms也有丢失按键动作的现象。还有其他的方法吗???
radio2radio 回答时间:2019-1-20 11:24:40
qazplm3218 发表于 2019-1-19 21:53
按键扫描频率提高到50ms也有丢失按键动作的现象。还有其他的方法吗???

那就提高到5ms
yklstudent 回答时间:2019-1-20 19:44:45
正常情況下20ms掃描一次就可以了,不過感覺更關鍵在於串口中斷内怎麽處理的,很佔時間?

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

any012 回答时间:2019-1-21 15:48:17
本帖最后由 any012 于 2019-1-21 15:51 编辑

定时器中断到了以后,先关闭串口中断,然后等主循环里按键扫描接收后再打开串口中断。
这样行不行?
不过这样串口数据可能就会丢了。

是不是串口接收没处理好?串口中断只存数据不处理,设个标志,然后在主循环里处理串口数据。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版