打印

求解 波特率变化导致传输的数据变化

[复制链接]
1429|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
刹那涅磐|  楼主 | 2011-3-23 15:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码稍微粘一下,主要看介绍
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变到了第二最高位。
想了很久也不懂,请各位大大帮忙看看。多谢

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

7

帖子

1

粉丝