代码稍微粘一下,主要看介绍
x=(s[0]+128)*256+s[1];
y=s[2]*256+s[3];
xg=x+50;
yg=y+50;
b=xg;
h=b>>8; //X高八位
l=(b<<8)>>8; //x低八位
d=yg;
m=d>>8; //y高八位
n=(d<<8)>>8; //y低八位
将h,l,m,n(均为一字节长的数据)通过串口从51单片机发送给PC
问题是:
理论上说,X输出的h应当为1000xxxx(二进制),
当两边波特率为2400时,X的输出为1000XXXX,与预期相符。
可是当我将两边波特率改为9600或是19200时,X的输出就变成了0100XXXX,也就是说最高位上的1变到了第二最高位。
想了很久也不懂,请各位大大帮忙看看。多谢 |