OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 493|回复: 5

串口空闲中断,数据没收完就产生空闲中断了

[复制链接]

2

主题

10

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2024-3-5
在线时间
6 小时
发表于 2024-7-23 13:54:14 | 显示全部楼层 |阅读模式
1金钱
我用串口空闲中断接收一个5344字节的数据,但有时候数据还没收完就产生空闲中断了(接收数组大小定义了10K字节)。串口助手第一行接收5344字节是正常的。但后面那两行显然是将一帧数据分成两次接收了。串口中断服务函数我放下面了

程序

程序
Y0)3XX9N4~}P[4}(21{YXGD.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

881

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4195
金钱
4195
注册时间
2019-9-4
在线时间
881 小时
发表于 2024-7-24 11:10:22 | 显示全部楼层
空闲中断是在接收两个字符之间超过指定时间了才会触发的,你一帧数据可能被串口调试助手分成两包发送了,可以试下换个串口助手试下看看
回复

使用道具 举报

3

主题

800

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3773
金钱
3773
注册时间
2017-3-7
在线时间
1644 小时
发表于 2024-7-24 11:49:28 | 显示全部楼层
这个问题不可避免,上位机也是程序,肯定存在数据发送中断问题,自己程序要考虑这种情况,1个字节空闲不足,那就自己用定时器作空闲判断,协议层加些处理逻辑
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2024-3-5
在线时间
6 小时
 楼主| 发表于 2024-7-24 16:33:35 | 显示全部楼层
a5820736 发表于 2024-7-24 11:49
这个问题不可避免,上位机也是程序,肯定存在数据发送中断问题,自己程序要考虑这种情况,1个字节空闲不足 ...

所以我的程序没问题是吧,就是串口助手把我的数据分成两包喽
回复

使用道具 举报

11

主题

2103

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4584
金钱
4584
注册时间
2015-1-10
在线时间
573 小时
发表于 2024-7-26 09:30:01 | 显示全部楼层
你这个理论上可以,但是依赖于外部数据流的连续性,实际操作的时候还是自己做接收超时比较靠谱
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2024-3-5
在线时间
6 小时
 楼主| 发表于 2024-7-26 10:08:18 | 显示全部楼层
阿侑kevin 发表于 2024-7-26 09:30
你这个理论上可以,但是依赖于外部数据流的连续性,实际操作的时候还是自己做接收超时比较靠谱

搜嘎,懂了。我也换了个串口助手试了一下,好像确实是串口助手吧我的bin文件分成两个包了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 07:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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