电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
51串口接收处理的思路?
已解决
73482
个问题
已帮助
5993
位优秀工程师
51串口接收处理的思路?
天外飞信
2017-06-29
浏览量:951
读10串数据,只能处理到4串。思路是在接收中断建立缓存数组。然后读完一串置标志。在主程序20MS轮询标志并做处理,判断帧头和校验码。
但是还是会丢失,感觉处理不过来。是不是我没关中断引起的?
串口需要注意哪些?有没有好的关于串口接收处理的思路
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
王奕
10串数据的命令间隔时间 处理一串命令的时间 大致要估算一下,看看时间够不够,在考虑是不是开关中断的问题
发布于
2017-06-29
举报
评论 0
0
0
其他答案
数量:
7
chen0000009
20ms的时间应该是够的,只是在这20ms的时间内可能有别的事件打断了串口的处理,你把程序贴上来看看吧
发布于
2017-06-29
举报
评论 0
0
0
邱云平
跟关不关中断关系不大
串口接收完成处理数据的时间不要超过接收两个字节之间的时间
或者主程序轮询的时间间隔不要超过接收一帧数据的时间
还一种方法是:你要把缓存数组搞成环形队列!你计算一下处理一串的时间,然后这个时间内会收到多少串,缓冲区设成比这个值大点就行了
发布于
2017-06-29
举报
评论 0
0
0
new world
串口连续传输字节时,下位机的RXBUF只能存一个字节,你必须在两个传输位(停止位、起始位)的时间内把数据取走,不然下一个字节的数据就来了
发布于
2017-06-29
举报
评论 0
0
0
Tangchaohua
我也在学这个,路过看看。问题解决了,请帮忙告诉方法,谢谢!
发布于
2017-06-29
举报
评论 0
0
0
donatello
不可能的,我以前就做过串口中断接收不定长数据,没有这个问题。首先RI标志位每接收一个字符都要复位一次,这个不用说的了,而且单片机一般不会跟不上20MS/一个字符的速度,不然就考虑一下提高主频(换用高频晶振),一般12M晶振是可以满足要求的。另外一般串口接收出现问题,八成都是上位机的原因,楼主静下心来监测一下上位机有没有问题吧!
发布于
2017-06-29
举报
评论 0
0
0
lygo
建议采用一个缓存区来做,还有就是反应时间20-30ms左右,如果超过了30ms,就强制接收完成,等待下一次接收,这种处理机制楼主可以学习学习。
发布于
2017-06-30
举报
评论 0
0
0
apleilx
对于可靠数据传输,一般要有应答机制,发送端不能一直不停的发送数据,可以参考modbus协议的做法
发布于
2017-10-30
举报
评论 1
0
0
电子老工程师
回复了 :https://atta.szlcsc.com/upload/public/pdf/source/20190620/C399511_539387F5E9D2FD83209AB1CE0CB254B2.pdf
回复
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
51串口接收处理的思路?
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: