上位机发送int型数据下位机接收不到?
上位机Private Sub Command5_Click()
Dim sj(0) As Byte
Dim zj(1) As Byte
sj(0) = &HF8 '标志 告诉下位机 后面要发送一个int数据
MSComm1.Output = sj
delay (200)
zj(0) = Text1.Text / 256
zj(1) = Text1.Text Mod 256
MSComm1.Output = zj
END Sub
下位机
if(SBUF==0xF8) //xie ru shuju
{
RI=0;
while(!RI==1);
dat_H=SBUF;
RI=0;
while(!RI==1);
dat_L=SBUF;
dat_XYT[0]=dat_H*256+dat_L;
}
这么写有问题吗? command --------------------编程问答-------------------- 你看一下你的 zj 中是什么内容。
其实,3 个字节可以一起发。串口是低速接口,下位机是来得及的。
Dim sj(2) As Byte
sj(0) = &HF8 '标志 告诉下位机 后面要发送一个int数据
sj(1) = Val(Text1.Text) / 256
sj(2) = Val(Text1.Text) Mod 256
MSComm1.Output = sj --------------------编程问答--------------------
首先不加延时一直出错
另外当发送一个int数据时 数值在128-256之间是 数据会出错 根据实际反映 收到的数值基本都是320 --------------------编程问答-------------------- 收到的数值是400 不是320 记错了
另外这个算法 sj_byte(4) = Val(Text2.Text)-sj_byte(3)*256 为什么会溢出 sj_byte为byte 型 新人一个 --------------------编程问答--------------------
、
sj(1) = Val(Text1.Text) / 256
当Text1.Text值大于128小于256时 sj(1)=1??????????? --------------------编程问答-------------------- 用这个试一试:http://download.csdn.net/detail/veron_04/4037248 --------------------编程问答-------------------- sj(1) = Val(Text1.Text) \ 256
补充:VB , 控件