问一个关于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;}
是否这样
展开
 我来答
sanjinluo
2009-05-09 · TA获得超过4714个赞
知道大有可为答主
回答量:3402
采纳率:0%
帮助的人:2363万
展开全部
你定义一个RXBUF[4]的数组,然后用再用一个全局变量i,每接收一次RXBUF[i++]=SBUF;i>3就i=0
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式