找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2376|回复: 8
打印 上一主题 下一主题
收起左侧

51单片机串口中断被定时中断打断怎么解决?

[复制链接]
跳转到指定楼层
楼主
ID:302293 发表于 2023-7-11 16:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        stc51 开启定时器,串口中断就不能用了,怎么配置优先级
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1085441 发表于 2023-7-11 22:49 | 只看该作者
建议只用定时器中断,串口改为查询方式,注意查询时间间隔小于一个字节的发送时间。
回复

使用道具 举报

板凳
ID:1088156 发表于 2023-7-12 00:46 | 只看该作者
可以参考这个经过试验证明的
https://blog.csdn.net/qq_42011552/article/details/103318349
回复

使用道具 举报

地板
ID:116103 发表于 2023-7-12 07:45 | 只看该作者
不设置优先级时,中断中串口中断是优先级最低的,可以设置中断优先级寄存器IP中的PS=1, 串口的中断优先级就是最高的了
回复

使用道具 举报

5#
ID:302293 发表于 2023-7-12 07:56 | 只看该作者
cnfloatleaf 发表于 2023-7-11 22:49
建议只用定时器中断,串口改为查询方式,注意查询时间间隔小于一个字节的发送时间。

  不能同时用这两个中断吗?
回复

使用道具 举报

6#
ID:320306 发表于 2023-7-12 09:16 | 只看该作者
定时器和串口不能都配置成定时器2,一个用定时器1  一个用定时器2就可以了,经常这样用,没有问题。
回复

使用道具 举报

7#
ID:161164 发表于 2023-7-12 09:31 | 只看该作者
"串口中断就不能用了"是如何不能用?
回复

使用道具 举报

8#
ID:123289 发表于 2023-7-14 17:37 | 只看该作者
本帖最后由 yzwzfyz 于 2023-7-15 09:37 编辑

串行一个字节需要几个ms(假设10ms,与波特率有关)。只要在这个期间内,能让串口得到一次中断,下载到这个字节,就可以了。
所以,比串口高级的中断服务程序(如T0,INT0……),执行时间不要超过10ms。否则串口将可能失去一个字节。
这就是中断服务程序要尽可能短的最好例子。
这是高手必备的知识点。也是编程的要领。
回复

使用道具 举报

9#
ID:401564 发表于 2023-7-15 09:22 | 只看该作者
串口发送过程和接收的过程,都是不占用主程序时间的
采用定时器目的就是为了时间准确
串口采用中断就是为了不错过接收
两个事件都重要
最好的处理是:串口中断只做清除中断标志位和数据的保存,这两个事情,数据处理放在主程序中执行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表