最近一直被这个问题困扰,希望能得到大虾的指点!!我用mscomm控件,从rs232口接收数据,显示在界面上,我的代码如下:Private Sub Form_Load()    Me.MSComm1.CommPort = 1
    Me.MSComm1.Settings = "4800,n,8,1"
    Me.MSComm1.InputLen = 0
    Me.MSComm1.InputMode = comInputModeText
    
    If Me.MSComm1.PortOpen = False Then Me.MSComm1.PortOpen = TrueEnd SubPrivate Sub Form_Unload(Cancel As Integer)
    If Me.MSComm1.PortOpen = True Then Me.MSComm1.PortOpen = False
End SubPrivate Sub Timer1_Timer()    Me.Text2.Text = Me.Text2 & Me.MSComm1.Input
    
End Subtimmer设的为1000ms执行一次,可奇怪的是显示的数据,有时候是正确的,如:
$GPRMC,055142,A,1003.3291,N,10346.3723,E,0.0,230.4,250503,1.3,W,A *3 02
$GPRMC,055143,A,1003.3291,N,10346.3723,E,0.0,230.4,250503,1.3,W,A *3 02
$GPRMC,055144,A,1003.3291,N,10346.3723,E,0.0,230.4,250503,1.3,W,A *3 02可有时候却是乱码,如:
凸蜕迮?迸镣奄雇萆捅绷沽鄙土寡鄙樟樟捅殴捅]?仼蛠辽5)?AI5
绷照叛杀鄙膳凸蜕迮?迸镣奄雇萆捅绷沽鄙土寡鄙樟樟捅殴捅]?仼蛠辽5)?AI5
绷照叛杀鄙僚凸蜕迮?迸镣奄雇萆捅绷沽鄙土寡鄙樟樟捅殴捅]?仼蛠辽5)?AI5不知道是什么原因。

解决方案 »

  1.   

    改用mscomm控件的中断接收 会好一点
      

  2.   

    应该是gps模块的问题, 你的这份代码没问题。
      

  3.   

    用mscomm控件的中断吧,这个很好用,我最近就做这个,也是gps数据,像你这个改起来也不麻烦
    要不你先检查一下gps处理代码那一块,确保正确后再看这边,试试这边的时间放长一点看看
      

  4.   

    gps 是什么??
      说明一下
      

  5.   

    mscomm控件的中断是怎么回事呀?
    学习下^_^
      

  6.   

    谢谢各位大侠,问题解决了,我的代码确实没问题,是gps那边发送数据有问题