当前位置: 代码迷 >> 单片机 >> 单片机的串口发送解决办法
  详细解决方案

单片机的串口发送解决办法

热度:7956   发布时间:2013-02-26 00:00:00.0
单片机的串口发送
#include<reg52.h>
#include<stdio.h>
void Debug_put(unsigned char *s,unsigned char c){
TMOD = 0x20;
TH1 = 0xfd;
TL1 = 0xfd;
TR1 = 1;
SM0 = 0;
SM1 = 1;
REN = 1;
EA = 1;
ES = 1;
TI = 1;
printf("%s%d",s,c);
while(!TI)
;
TI = 0;
TR1 = 0;
ES = 0;
}
void main(){
Debug_put("123\0",4);
}

很好理解  就是输出1234而已  
为什么就是输出的值不对呢
输出1024  为什么???

------解决方案--------------------------------------------------------
c的类型,你在函数里用的是char,只占用1个字节;而打印的时候使用的是“%d”, %d表示是整形,一般是4个字节。所以,这个打印结果就会出错。


你可以把函数原型改为void Debug_put(unsigned char *s,unsigned int c);
  相关解决方案