解决方案 »

  1.   

    端口是USB转换的还是原生的这个从软件层面看是没有区别的。无非就是端口号不一样而已。但就通常的情况而言,原生串口的稳定性要大大强过USB转换的。现在市面上有多种类型的串口,USB转的、网口转的、PCI的、ISA的,相较而言USB的最方便,但也稳定性最差。
      

  2.   

    MSComm1.RTSEnable = True
    Do Until (MSComm1.CTSHolding = True)
     DoEvents
    Loop
    MSComm1.RTSEnable = False试着把DoEvents用timer代替试试。
    把sleep去掉
    为什么MSComm1.InputLen不能加大些,记录数据到数组中,动态判断取值
      

  3.   

    1.usb扩展出来的com口与机器自带的com口有什么区别吗?
    //
    不同的芯片以及不同的厂家,做出来的USB转COM是有区别的.不少的转换头只实现了RXD,TXD及GND.我以前做单片机编程及PLC编程时就发现有些线不能用,测试后发现CD,RTS,CTS这些都没有实现.推荐选用PL2303芯片的转换头,我用着很稳定.
      

  4.   

    用timer试过,不行,oncomm总是接收的数不对,如果inputlen设置再多一点的话,接收过来的数更乱了,比如说inputlen=10,可能一次oncomm事件会收12个,也可能是9个,不稳定。
    不能排除我买的USB转232的线没有做RTS/CTS的转换这个原因,请教下该如何确认?我下载的好多个串口调试助手里面都没这个功能。
    多谢!
      

  5.   

    MSCOMM控件的一些属性直接对应端口状态啊.比如CDHolding属性就是读1脚的高低电平状态,而设置DTREnable属性,就能让4脚电平相应改变,这个用万能表就可以测出来.具体的其它属性在MSDN中可以查到.
      

  6.   

    usb转串线,估计没有实现RTS/CTS,事实上,我不用这个信号
      

  7.   

    usb转串线,估计没有实现RTS/CTS,事实上,我不用这个信号
      

  8.   

    要么把握手协议去掉,要么测试并选定 U 转串线提供给用户。选 U 转串时,查一下是否支持“全部信号”。许多 U 转串仅仅实现了三线基本通讯功能。至于在测试中出现的异常,等选定了 U 转串之后再调试。很可能是你现在用的 U 转串有毛病。
      

  9.   

    多谢大家的帮助。今天测试了一下,USB转232的线没有问题,用的是PL2303的芯片,测试RTS电平等均无问题。今天测试时发现如果将MSComm1.RTSEnable = True
    Do Until (MSComm1.CTSHolding = True)
     DoEvents
    Loop
    MSComm1.RTSEnable = False
    放到每次的oncomm事件中,系统容易假死,单步调试的话连第一次握手的&H84都接收不到,但是如果利用timer控件,触发事件1ms,在timer事件中加入以上代码,点击发送按钮的同时激活timer控件,则可以正常通信,收发数据正确,但就是收发速度降低了很多,于是新增加了一个疑问,为什么USB转的232会出现上述情况,不能放到oncomm事件中,因为正常的232口把上述代码放到oncomm事件中是没问题的。
      

  10.   

    主要是以前也用过,但是没有出现过这种情况,直接用串口可以,用扩展的USB转串口就不行了,实在是搞不明白。
      

  11.   

    计算机这边串口号是指计算机通过哪一个接口与外界设备通信。
    当你安装了USB转232的软件以后,再接上USB转232硬件,USB接口实际也就可以看成232了,跟232没有区别吧,只是串口号选择对了就好了啊,你可以点击你的电脑查看属性查看串口号。
      

  12.   

    这段时间也是遇到这个问题,PC连USB转串口与下位通讯,收不到数据。这个话题有新进展么?