上位机数据传输

wang117834 2015-06-11 01:17:26
下位机数据传输到上位机,上位机数据显示数据会变乱。
下位机程序:
void R_S_Byte(uchar R_Byte)
{
SBUF = R_Byte;
while( TI == 0 );
void main(void)
{
char i;
nRF905Init();
Config905();
StartUART();
P0= seg[0];led0=0;led1=0;led2=0;led3=0;BELL=1;
while(1)
{
RX();
if(TxRxBuffer[0])
{
led5=0;delay1(200);
temp[0]=TxRxBuffer[3]; //符号位
temp[2]=((TxRxBuffer[2]<<4)|TxRxBuffer[1]); //整数位
temp[3]=TxRxBuffer[0]; //小数位
temp[4]=TxRxBuffer[2]; //十位
temp[5]=TxRxBuffer[1]; //个位
for(i=0;i<3;i++)
{
R_S_Byte(temp[5-i]); //串口显示温度
}
}
delay1(40);led5=1;delay1(40);
disdignit(); //数码管显示温度
}
}
上位机程序:
com_buf = MSComm1.Input

Label8.Caption = com_buf(1) & com_buf(0) & "." & com_buf(2)
...全文
192 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2015-06-11
  • 打赏
  • 举报
回复
首先用串口调试工具监视一下,数据是否正确。
定长数据通过设置 RThreshold 来自动分组。
Option Explicit

Private Sub Form_Load()
MSComm1.InputMode = comInputModeBinary
MSComm1.RThreshold = 3 '每收到3字节才触发一次OnComm()事件'
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Dim com_buf() As Byte
com_buf = MSComm1.Input '内容是{temp[5],temp[4],temp[3]}'
Label8.Caption = com_buf(1) & com_buf(0) & "." & com_buf(2)
End Sub

zdingyun 2015-06-11
  • 打赏
  • 举报
回复
引用 1 楼 zdingyun 的回复:
com_buf = MSComm1.Input
Label8.Caption = com_buf(1) & com_buf(0) & "." & com_buf(2)
这两句就能构成上位机接收程序?
咋看都像是接收字节数组数据。
zdingyun 2015-06-11
  • 打赏
  • 举报
回复
com_buf = MSComm1.Input
Label8.Caption = com_buf(1) & com_buf(0) & "." & com_buf(2)
这两句就能构成上位机接收程序?

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧