首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

9位通讯格式,该怎么设置?大哥大姐来帮帮忙好么

2012-01-10 
9位通讯格式,该如何设置?大哥大姐来帮帮忙好么?通讯协议是:采用8051异步主从9位通讯协议,起始D0,D1,D2,D3,

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.

热点排行