问一个关于51单片机与PC串口通信的程序问题
如果上位机发来的是一个字符数组,比如说包含两个字符VB上位机:PrivateSubForm_Load()MSComm1.PortOpen=TrueMSComm1.Inpu...
如果上位机发来的是一个字符数组,比如说包含两个字符
VB上位机:
Private Sub Form_Load()
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
End Sub
Private Sub Command3_Click()
Dim sentnum(0 To 3) As Integer
Dim out(0 To 3) As Byte
sentnum(0) = Val(txtsend.Text)
out(0) = CByte(sentnum(0))
out(1) = CByte(sentnum(1))
out(2) = CByte(sentnum(2))
out(3) = CByte(sentnum(3))
MSComm1.OutBufferCount = 0
MSComm1.Output=out()
End Sub
请问下位机应该怎么编写接收程序呢。
我现在的下位机只能接受发来的第一个字符,之后的三个就都接受不了
if(RI==1) //查询收到数据
{ RI=0;
Rxbuf=SBUF;}
请问怎样接受后面的三个字符
我试过一楼的做法,好像还是不行。
请问一楼需不需要每次接收前都要RI=0
if(RI==1)
{RI=0;Rxbuf[i++]=SBUF;if (i>3) i=0;}
是否这样 展开
VB上位机:
Private Sub Form_Load()
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
End Sub
Private Sub Command3_Click()
Dim sentnum(0 To 3) As Integer
Dim out(0 To 3) As Byte
sentnum(0) = Val(txtsend.Text)
out(0) = CByte(sentnum(0))
out(1) = CByte(sentnum(1))
out(2) = CByte(sentnum(2))
out(3) = CByte(sentnum(3))
MSComm1.OutBufferCount = 0
MSComm1.Output=out()
End Sub
请问下位机应该怎么编写接收程序呢。
我现在的下位机只能接受发来的第一个字符,之后的三个就都接受不了
if(RI==1) //查询收到数据
{ RI=0;
Rxbuf=SBUF;}
请问怎样接受后面的三个字符
我试过一楼的做法,好像还是不行。
请问一楼需不需要每次接收前都要RI=0
if(RI==1)
{RI=0;Rxbuf[i++]=SBUF;if (i>3) i=0;}
是否这样 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询