串口发送中文数据

betball贝博app 51单片机, 软件 465 次浏览 没有评论

51单片机串口发送数据原来还可以调用stdio.h中的printf()和puts()函数,但是需要注意使用之前必须软件将TI=1。原因是printf()和puts()的原理都是使用的putchar(),而putchar的源代码如下

void putchar (unchar sbyte)

{

while(!TI);

SBUF=sbyte;

}

很明显,putchar是在上次发送结束以后再进行发送,在只有检测到了TI==1,才能执行发送功能,故前面必须加上TI=1。

TI=1;
printf("接收成功!值为:%s\n",a);
puts("接收成功,值为:");

puts不能加变量值,每发送一个字符串,会自动加上换行符、

但是发现printf()和puts()都不能输出“数据”这两个字,若上面的输出程序中,将“值”改为“数据”,会导致后面的乱码,不知道是不是其字符库中没有这两个字。

发表评论

邮箱地址不会被公开。

Go