d12345 发表于 2008-7-20 18:31:23

如何用visa向串口发送这样的数据

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

如何来发送这样的三个帧的数据,请高手指点一下,不胜感激

[ 本帖最后由 d12345 于 2008-7-21 09:05 编辑 ]

cpubbs 发表于 2008-7-20 23:30:10

我隐约记得以前有朋友说过这样的一个贴子,但记不清楚贴子名字了!

感觉在PC这边发9位不太方便,我觉得如果做成一个协议来通信,或许更方便些,我们论坛我发过一个和单片机通信的多机的例子!是靠协议来做的!比如,第一字节是机器码(地址),第二字节是信号类型选择,第三字节是通道号,单片机接收到三字节数据后,判断地址码是不是自己的,是自己的,就执行,不是自己的,再等待下次收到数据,如此循环就可以实现多机通信了,很方便的!因为不一定所有芯片都支持这种第9位的模式的!

d12345 发表于 2008-7-21 09:58:30

现在的问题是单片机那边协议已定,pc这边只能去按照已定好的协议去通讯,版主那个例子我也看了,有一定帮助,但是不能彻底解决问题,希望有这方面经验的高手继续支招,先谢谢了

飞雨天 发表于 2008-7-21 10:24:40

呵呵~~~以后定协议,可千万先大家一起讨论下,就好像我手头这个项目,协议是我定的,当时假设51单片机,44b0,上位机的串口行为都是一样的,哎。。。。。哪知道三者行为都不一样,在串口这里整个项目延迟了数月~~~~结果我忙活了半天,却成了千古罪人。。。
页: [1]
查看完整版本: 如何用visa向串口发送这样的数据