电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
串口接收如何判断一帧接收完成?
已解决
73482
个问题
已帮助
5993
位优秀工程师
串口接收如何判断一帧接收完成?
dwwzl
2017-12-25
浏览量:7121
说明:每一帧长短不一,没有统一的开始和结束字符,波特率115200bps
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
刘胜华Elitel
1.设定好通讯协议,如包头+长度+数据+校验+包尾,那么中断中每收到一个字节就判断,直到收到包尾为止。这是51时代用得比较多的状态机接收流程。
但如果由于接收中断被嵌套,或干扰等原因导致一帧数据的后部分丢失,就是说接收不到包尾,那么这个状态机如何能自动复位以便接收下一帧?
2.串口空闲中断也是用得比较多的一种方法,但是波特率较高的时候,空闲中断的触发时间相应变短,使得接收中断不被打断的要求变高,如果接收中断被耽误了,从而触发空闲中断,也是收不到完整数据。
3.定时器中断代替串口空闲中断,这个可以避免串口空闲中断时间不够的问题,因为这个定时器中断可以自己设置。但是一个串口需要搭配一个定时器使用,不爽。
4.串口接收只把数据放到缓存,此外不做任何事情。然后在另一个线程不断parse这个缓存,从头开始找其中有没有符合一帧的数据,如果有就是解析,同时将这一帧从缓存中删掉,如果没有就什么也不做。这样的程序就不用管一帧是否结束,可以较好的适应各种收不全、丢数据的问题。
发布于
2017-12-26
举报
评论 1
0
0
电子老工程师
回复了 :这个应用条件超过原厂的规格,一定会有影响。只能在105±2 °C for96 hours. 。
回复
其他答案
数量:
21
米饭米饭吖
发送方可以给一个特定的应答信号来作为判定 发送完了就有应答 接收方响应
发布于
2018-04-14
举报
评论 0
0
0
«
1
2
»
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
串口接收如何判断一帧接收完成?
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: