如何判断USART接收多个数据的结束

[复制链接]
3341|7
 楼主| 宇航3000 发表于 2011-6-24 11:00 | 显示全部楼层 |阅读模式
我现在用USART来一次接收多个数据 如:23 12 15 24 ....
我如何知道发送方已经发完了? 数据已经全部接收完了,程序可以往下进行处理了。
用Mega16 。
baiyunfei.k.f 发表于 2011-6-24 11:25 | 显示全部楼层
你可以设定一个时间,在这个时间内仍然无数据接收则认为这一帧结束
ayb_ice 发表于 2011-6-24 11:26 | 显示全部楼层
这就是需要通信协议
yewuyi 发表于 2011-6-24 11:30 | 显示全部楼层
可以分为定长和不定长,如果定长,肯定不要说了,如果不定长,则可以在数据报文中加入一个长度变量,当然不定长肯定也是有一个最大长度限制的了。

另外,再辅助结束符,有的协议规定用一串特殊字符串,有的协议规定用空闲时间,不一而足,你可以查询通信协议方面的书籍资料
程序匠人 发表于 2011-6-24 11:39 | 显示全部楼层
1、双方约定帧长
2、发送方主动发送帧长
3、以特定的帧尾符代表结束
4、接收方自动判断超时结束
phz0008 发表于 2011-6-24 16:58 | 显示全部楼层
接收方自动判断超时结束
程序匠人 发表于 2011-6-24 17:14 | 显示全部楼层
参考《串口猎人》的设置:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 宇航3000 发表于 2011-6-24 17:55 | 显示全部楼层
对发送方完全不知,只是接收, 所以我先用延时等待,过一段时间还没有数据就认为没有了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

165

帖子

2

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