有关串口通讯的头疼问题

[复制链接]
2737|8
 楼主| xugang4876 发表于 2008-10-6 10:19 | 显示全部楼层 |阅读模式
大家好 现在在写一个单片机串口485通讯的程序,写到现在我有点蒙了 请了解的朋友帮我解释下好吗 /
问题就是通讯的数据到底是什么数据啊 16进制 还是BCD码呢 比如说要读取保存的 脉冲数 这个是 应该是个16进制数吧  直接把读到数发送就可以了吗 不需要其他处理吗   如 0x55 ,是发 0x55 还是 0x85(55的十进制85)? 
computer00 发表于 2008-10-6 10:25 | 显示全部楼层

随便你自己了,方便通信就行了,自己定一个协议。

如果速度要求高,那就只好直接发送数据。

如果速度要求不高,我更喜欢转换成字符串发送,这样可以方便的增加帧头和帧位等信息。
 楼主| xugang4876 发表于 2008-10-6 10:35 | 显示全部楼层

发送的数据是什么格式呢

现在也是字符串发送的 现在考虑的不是速度 是想知道发送的每一个字符 是什么格式  还是我发什么都可以啊 我是按645规约做的
2shift 发表于 2008-10-6 10:53 | 显示全部楼层

什么格式都可以,但肯定的是发送的数据都是二进制

至于发送16进制数据和asc码,这个刚开始确实比较模糊。我更喜欢发送asc码,就像computer00说的那样,可以定义帧头和帧尾等信息,便于解码,而且
用asc发送数据,数据只能是十进制的48--57之间的数,帧头和帧尾定义成48--57之外的其他数据,解码很方便。采用16进制的发送方式,如果协议指定的不严格或者软件有漏洞,有可能出错,所以最好要加一个数据字节数的约定进去。
 楼主| xugang4876 发表于 2008-10-6 11:10 | 显示全部楼层

谢谢各位朋友

谢谢大家 虽然我还是很模糊   我在理解下 
chongying 发表于 2008-10-27 14:26 | 显示全部楼层

请教computer00或者2shift,

我现在用vb mscomm控件给单片机发送数据,数据格式
$ 命令 (数据)*
$ 起始字符
* 结束字符
数据:可有可无

通讯已经成功了,不过我现在是模糊阶段,就是数据格式的问题,我想让单片机解码比较容易,负担轻一点。比如说我发asc码,发送5和发送45就是不一样的,单片机收到还是需要解码的,5:0x35,  45:0x34 0x35,这种情况比较好的解决方案是什么呢?单片机可不可以不用解码程序呢,让计算机来做呢?非要解码的话运行怎么处理比较好呢?

computer00 发表于 2008-10-27 14:31 | 显示全部楼层

这个解码还不容易吗?

chongying 发表于 2008-10-27 14:43 | 显示全部楼层

传输一串数据

比如说4 45 56 43 等是不是定协议是要加上分隔符呢?那我的单片机中断嵌套又加深了一层
菜老大 发表于 2008-10-27 15:18 | 显示全部楼层

..

协议规定的,你发之前处理,或者接收方处理都可以的啦!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

42

帖子

0

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