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()都不能输出“数据”这两个字,若上面的输出程序中,将“值”改为“数据”,会导致后面的乱码,不知道是不是其字符库中没有这两个字。