9位通讯格式,该如何设置?大哥大姐来帮帮忙好么?
通讯协议是:采用8051异步主从9位通讯协议,起始 D0,D1,D2,D3,D4,D5,D6,D7,D8 停止(说明:起始位1位,D0-D8数据或地址位,D8为数据/地址位的区别位,D8=0表示数据,D8=1表示地址。),请问各位大哥要满足这种通讯协议该如何设置
mscom485.Settings = "4800,m,8,1 "
buffer = arr
mscom485.Output = buffer
Select Case m_CmdTmp.CmdType
Case "00 ", "02 ", "03 ", "04 ", "05 "
ReDim arr(2)
arr(0) = Val( "&H " & m_CmdTmp.CmdType) '命令号
arr(1) = 0 '传送字节数
arr(2) = Val( "&H " & m_CmdTmp.PlantAddr) + arr(0) + arr(1) '校验和
mscom485.Settings = "4800,s,8,1 "
buffer = arr
mscom485.Output = buffer
timer485.Enabled = True
m_b485Busy = True '端口忙 ,正在通讯
以上是别人写的程序,但是我不是很懂,为什么mscom485.Settings = "4800,m,8,1 "后,还要设置mscom485.Settings = "4800,S,8,1 ",M(标志位)怎么处理呢?
[解决办法]
这是典型的Mark/Space校验方式,使用这种校验方式用户可自定义校验位的状态(Mark/Space)即是(1/0),在通讯过程中该校验位可能会根据和下位机的约定进行变换.
如:
MSComm1.Settings= "9600,M,8,1 " 。其中M为Mark,是把字符校验位置1.
MSComm1.Settings= "9600,S,8,1 " 。其中S为Space,是把字符校验位置0.