打印

请教51的串口发int类型的数据

[复制链接]
5850|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wofred|  楼主 | 2010-3-11 13:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
uint wemdu,shidu;

put[0]=wendu&0x00FF;//低8位
   put[1]=(wendu&0xFF00)>>8;//高8位
   put[2]=shidu*0x00FF;//低8位
   put[3]=(shidu*0xFF00)>>8;//高8位

这样写对吗,但为什么收到的第一个数据总是0x00呢

void initUart(void)
{
T2CON=0x30;//0011 0000
SCON=0x50;
TH2=0xFF;
TL2=0xDC;
RCAP2H=0xFF;
RCAP2L=0xDC;
TR2=1;
}


void send (void)
{uchar i,pf;
do{
SBUF=0xaa;
while(TI==0);
TI=0;
while(RI==0);
RI=0;
  }while((SBUF^0xbb)!=0);
do{
pf=0;
for(i=0;i<7;i++)
     {
SBUF=put[i];
pf+=put[i];
while(TI==0);
TI=0;
     }
SBUF=pf;
while(TI==0);TI=0;
while(RI==0);RI=0;
  }while(SBUF!=0);
TR1=0;
}

上面是初始化和发送函数
而且还有问题put[4],put[5],put[6]都应该是0的,怎么又会收到数据呢


多谢各位大侠了

相关帖子

沙发
wofred|  楼主 | 2010-3-11 13:28 | 只看该作者
put[0]=wendu&0x00FF;//低8位
                        put[1]=(wendu&0xFF00)>>8;//高8位
                        put[2]=shidu&0x00FF;//低8位
                        put[3]=(shidu&0xFF00)>>8;//高8位
sorry  应该是这个

使用特权

评论回复
板凳
原野之狼| | 2010-3-11 13:30 | 只看该作者
格式化成字符串再发送多好呀

使用特权

评论回复
地板
wofred|  楼主 | 2010-3-11 13:34 | 只看该作者
额。。不好意思,怎么样格式成字符串,用哪个函数吗
3# 原野之狼

使用特权

评论回复
5
wofred|  楼主 | 2010-3-11 13:46 | 只看该作者
您在线的话,能不能多点提示呀,谢啦
4# wofred

使用特权

评论回复
6
原野之狼| | 2010-3-11 14:06 | 只看该作者
printf 知道吧

使用特权

评论回复
7
sytu_chyq| | 2010-3-13 09:35 | 只看该作者
是用sprintf么。。

使用特权

评论回复
8
zq1987731| | 2010-3-13 11:18 | 只看该作者
把fputc重定向到你串口上
就能用printf很方便的输出了

使用特权

评论回复
9
wofred|  楼主 | 2010-3-14 09:43 | 只看该作者
不好意思,这几天没上,我那样做的问题解决了,但是怪麻烦的。。。
但是还是想知道怎么用printf做,我在单片机里还没有用过这个函数,那个fputc都没见过,您能给个例子吗,谢啦
8# zq1987731

使用特权

评论回复
10
zgl7903| | 2010-3-14 19:27 | 只看该作者
要学会调试,
Keil里调试功能下有串口监视窗口, 设置个一步步调 一步步看

使用特权

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

本版积分规则

个人签名:a labor of love

3

主题

18

帖子

0

粉丝