我用mscomm控件从串口读数据,设置接收的数据类型为string,我的最后的
校验码转换为十六进制为“FF”,但是我接收转换的时候老是出错,strRx = Hex(Asc(MSComm1.Input)),出错讲Invalid procedure。但是事实上我接收的在这之前的其他String,转换为十六进制也有为“FF”的,也是用的这条语句,不知道到底哪里错了?而且别人的电脑上,这句语句有的出错,有的不出错,请高手指教。

解决方案 »

  1.   

    inputmode  是二进制的时候会出错的 
    能不能说说你的MSComm1 参数怎么设置的啊 
      

  2.   


        MSComm1.CommPort = 5
        MSComm1.Settings = "38400,N,8,2"
        MSComm1.InputLen = 1
        MSComm1.RThreshold = 1
        MSComm1.InputMode= comInputModeText
    在oncomm事件中处理接收来的
      

  3.   

    由于VB的string是支持双字节编码,而串口是以字节为单位进行处理,如果传输的信息中包含控制信息,就很容易出现问题。因此在这种情况下改用二进制的方式去处理会更好一些。
      

  4.   

    二进制模式的话,串口一次读一个byte?还是8个bit?
    就是最后的校验码出问题。
      

  5.   

    一次读一个字节,MSComm中是以一个字节为单位进行处理的。