关于串口通讯问题
我做LABVIEW和单片机多机通讯的程序。用的自定义协议,用第9位(奇偶校验位)来作为地址和数据的区分,当LABVIEW按照正确的格式发送给单片机后接收单片机回送的数据,但是每次接收到的帧头,也就是地址位(也就是第9位为MARK)都是错误的。LABVIEW显示的字符串是????,但是后面的数据都是正确的。请问这是为什么啊?LABVIEW发送完数据后第9位是SPACE。。请求解答。。。 如果需要做成较通用的系统,不要这样用好点!全部用协议来解决!比如发0XAA开始的一串数据出去,代表这次发的是指令,最后一字节可以是校验和,自己累加的!发0X1A代表是其他数据,不是指令,当然可以在里面比如后面跟着一字节地址,最后也是校验和!这样是比较通用的!而且不容易出错! 就像51的有一个多机通讯位,万一用的芯片没有这个位了,哪程序就不通用了!所以用普通协议较安全! 我这样做主要是节点较多。用485通讯。单片机要采集数据。如果没有地址和数据的区分,那么单片机要接收所有的信号。不利于数据采集了啊。。通常这种错误是什么原因产生的啊? 对了。。我是用的MSCOMM这个控件来实现串口通讯的。。。
页:
[1]