PC机与单片机串行通信。我遇到的问题:发数据少于8个,能正确接收,汉字少于4个,能正确接收;若发多了,只能收到8个数,汉字只能收4到个,而且接收区不能连续显示。用串口调试工具验证单片机中程序没错,我用的是VB企业版中的MSCOMM控件,程序代码如下:
Option Explicit
Private Sub Command1_Click()
'发送数据
Dim outdata As String
outdata = Text1.Text
MSComm1.Output = outdata
End Sub
Private Sub Command2_Click()
Unload Me '退出串口调试
End Sub
Private Sub Form_Load()
'初始化串口
With MSComm1
MSComm1.CommPort = 1 '选串口1
MSComm1.Settings = "4800,n,8,1" '设置波特率,数据位,停止位
MSComm1.PortOpen = True '串口打开
.InputMode = comInputModeText
.RThreshold = 1
End With
End Sub
Private Sub MSComm1_OnComm()
Dim indata As String
With MSComm1
Select Case MSComm1.CommEvent
Case comEvReceive '有接收事件发生,
indata = MSComm1.Input '
Text2.Text = indata '显示字符
End Select
End With
End Sub
command1发送按钮command2退出按钮text1发送区显示text2接受区显示
你把.RThreshold = 0试试看,我记得是一次全部收完
到我的版里,有个 用API 实现的 VB的 串口 demo 还凑活