renxiaojun 发表于 2007-7-26 17:34:51

请问如何在LV 中发送9位数据的串口通信,其实就是其中一位做地址位?

请问如何在LV 中发送9位数据的串口通信,其实就是其中一位做地址位? 它自己规定的是5~8位,而且写数据的函数中是以字节为单位的?

cpubbs 发表于 2007-7-27 00:26:00

用VISA好像没有见着可以选9位的!不知道用MSCOMM可不可以!没有看过这个选项!这个9位的好像是单片机里面的多机通信的!如果不是多机的话,可以加个简单的协议,在内容上面加点识别的就可以做到的!好运!

wdyjz 发表于 2008-3-31 19:29:30

每次PC作为主管,发送一个东西出去,下面的许多单片机去接收这个数据并分析。
PC机:
mark方式:第9位恒定为1;
space第9位恒定为0,
那么我们可以通过改变这个设置,实现通讯。
发送地址时候,将其设置为1方式;
发送数据时,采用0方式。
下位机单片机程序好做。

d12345 发表于 2008-7-20 18:26:57

为了研究这个多机通讯问题,从百度一路找来这里,发现这里还真不错,
网上其他地方和wdyjz说的都差不多,但是实现起来好像有困难
比如每次发往单片机端的数据是连续的,
共三侦
第一侦地址码的第九位要求是1
第二三侦数据的第九位要求是0
中间怎么来改变第九位(奇偶校验位)?
例如:010302
         起始位8位数据位可编程的第九位 停止位
                                             (奇偶校验位)
第一侦 0          0000 0001   1                        1
第二侦 0          0000 0011   0                        1
第三侦 0          0000 0010   0                        1

如何来发送这样的三个字节的数据

飞雨天 发表于 2008-7-21 09:13:38

设置奇偶检验模式即可~~~~见附图:

注意1ms延时以保证数据完整的发送出去~~~~(9600波特率下,发送10位数据要1.042ms,不知道延时1ms是不是足够了,你可以用示波器观察下这个vi所产生的波形,我记得以前我做的时候,好像没有问题的~~~)

或者可以用MSComm控件的CallBack,监听comEvSend事件的触发~~~

另外,Output接收的需要是一个字符串或者是一个U8的数组,光一个U8的数据会报错 ~~~

d12345 发表于 2008-7-21 10:02:25

注意1ms延时以保证数据完整的发送出去~~~~(9600波特率下,发送10位数据要1.042ms,不知道延时1ms是不是足够了,你可以用示波器观察下这个vi所产生的波形,我记得以前我做的时候,好像没有问题的~~~)

或者可以用MSComm控件的CallBack,监听comEvSend事件的触发~~~
----------------
非常感谢,不知道57600的波特率下能不能完整发送,今天回家就试一下,有什么问题,再向您请教。
页: [1]
查看完整版本: 请问如何在LV 中发送9位数据的串口通信,其实就是其中一位做地址位?