最近一直被这个问题困扰,希望能得到大虾的指点!!我用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不知道是什么原因。
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不知道是什么原因。
要不你先检查一下gps处理代码那一块,确保正确后再看这边,试试这边的时间放长一点看看
说明一下
学习下^_^