首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

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

2013-02-15 
单片机的串口发送#includereg52.h#includestdio.hvoid Debug_put(unsigned char *s,unsigned char c){

单片机的串口发送

#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);

热点排行