打印

51串口接收问题

[复制链接]
3889|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
topshuang|  楼主 | 2007-8-17 10:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上,下位机没有串口协议,只是一方准备好接收,另一方就可以发送了,现在问题是接收方怎么能知道数据流已经结束呢,在这里没有结束标志符,上位机只发字符串.高手们 帮我想想办法 怎么去检测?谢谢
我想能不能做超时处理,如果在一个周期内没有到达下一个字符没有到达,则认为传输结束了,这样可以不?
还有我可以在单片机里设了缓存,使用定时器轮询,如果缓存里有值,则读出处理,如果没有则认为传输结束,这个是方法2,可以吗?

相关帖子

沙发
gjg191| | 2007-8-17 10:39 | 只看该作者

dd

方法2比较好些

使用特权

评论回复
板凳
gyt| | 2007-8-17 10:47 | 只看该作者

自己定一个简单的协议吧

否则使用起来肯定问题多多

使用特权

评论回复
地板
topshuang|  楼主 | 2007-8-17 15:57 | 只看该作者

上位机的软件没法改,所以不能做协议的,还有没有更好的办法

使用特权

评论回复
5
新好男孩| | 2007-8-17 16:39 | 只看该作者

看看求教,关于单片机和TC35I联机问题??

看看求教,关于单片机和TC35I联机问题吧!

那里面好像有你要的答案.

就是串行口接收超时处理.试一下吧.

使用特权

评论回复
6
topshuang|  楼主 | 2007-8-18 16:46 | 只看该作者

继续请教楼上的

谢谢 ,我看了一下,在你的程序中当接收到一个换行符作为结束符,然后作了一个定时器中断,结束接收.而我这个是没有结束符的,所以只能是上一次中断后,我就的开启定时器,如果在时标内来了下一个中断,则继续;如果超过时标则认为接收结束,执行超时处理.

使用特权

评论回复
7
emailli| | 2007-8-18 17:09 | 只看该作者

ModBus RTU 方式就是用的超时处理的

详细的时间延时计算可以参考MODBUS RTU协议

使用特权

评论回复
8
qingtian506| | 2013-2-17 16:49 | 只看该作者
:)

使用特权

评论回复
9
yuanjiejun| | 2013-2-19 15:25 | 只看该作者
最好自定义个协议,用串口中断的方法比较好,因在整体程序运行中,是比较靠的!

使用特权

评论回复
10
flyinginred| | 2013-2-19 18:16 | 只看该作者
怎么可能没有协议的通信?那不是**同鸭讲了?

使用特权

评论回复
11
287651380| | 2013-3-30 18:40 | 只看该作者
听不懂!!刚接触,什么都不懂!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

15

帖子

0

粉丝