zzfox2002 发表于 2009-3-16 21:49:38

关于串口通讯问题

我做LABVIEW和单片机多机通讯的程序。用的自定义协议,用第9位(奇偶校验位)来作为地址和数据的区分,当LABVIEW按照正确的格式发送给单片机后接收单片机回送的数据,但是每次接收到的帧头,也就是地址位(也就是第9位为MARK)都是错误的。LABVIEW显示的字符串是????,但是后面的数据都是正确的。请问这是为什么啊?LABVIEW发送完数据后第9位是SPACE。。请求解答。。。

cpubbs 发表于 2009-3-17 08:45:04

如果需要做成较通用的系统,不要这样用好点!全部用协议来解决!比如发0XAA开始的一串数据出去,代表这次发的是指令,最后一字节可以是校验和,自己累加的!

发0X1A代表是其他数据,不是指令,当然可以在里面比如后面跟着一字节地址,最后也是校验和!这样是比较通用的!而且不容易出错!

cpubbs 发表于 2009-3-17 08:45:32

就像51的有一个多机通讯位,万一用的芯片没有这个位了,哪程序就不通用了!所以用普通协议较安全!

zzfox2002 发表于 2009-3-17 09:34:33

我这样做主要是节点较多。用485通讯。单片机要采集数据。如果没有地址和数据的区分,那么单片机要接收所有的信号。不利于数据采集了啊。。通常这种错误是什么原因产生的啊?

zzfox2002 发表于 2009-3-17 09:40:17

对了。。我是用的MSCOMM这个控件来实现串口通讯的。。。
页: [1]
查看完整版本: 关于串口通讯问题