我要问一个关于VB的MSCOMM串口问题。我看了一些资料,说在多机通信方式过程中,需要一个第9位,(可为数据/地址判断位),可根据发送的地址或数据分离,但VB中怎样区分数据位和地址位?MSCOMM中有SETTINGS可以设置M(标志位),如何使用以便多机通信? 

解决方案 »

  1.   

    你说的实际上是 RS485 协议。
    首先设置第 9 位,然后发地址,这叫做呼叫 Call。如果这台外设在线,它将以地址值回答。此时,其他外设静默。
    设置回 8 位状态,进行正常通讯。一般情况下,协议是设置成每一个命令应答对之后,需要重新呼叫。也就是呼叫和命令必须交替进行。要看你的协议是如何设置的,也就是你的外设的代码是如何写的。如果一次呼叫后,地址一直有效,直至下一呼叫,就可以减少切换。用 MSCOMM 控件时,切换 Settings 必须先关闭 MSCOMM,速度比较慢。建议用 API 来做。