c51中printf函数如何当串口用,有哪3个地方必须注意的?已解答。
问:c51中printf函数怎么用,有哪3个地方必须注意的?
鸿哥-深圳:
必须在程序里初始化配置串口,硬件与电脑连接好,然后利用串口助手软件就可以显示单片机中程序里的printf等函数发送过来的内容了,注意串口助手的波特率,数据位,校验位要与单片机程序的初始化配置保持一致。
在软件上有3个地方要特别注意:
第一:必须包含此<STDIO.H>头文件,因为printf函数在此头文件中。
第二:每次调用printf函数之前必须确保TI为1.因为printf函数内部有一条循环判断TI的语句,如果TI为0会相当于进入死循环。
第三:每次调用printf函数之前必须确保关闭串口中断ES=0。因为TI为串口中断标志位,如果不关闭串口中断,在串口发送每一个字节的时候会不断调用串口中断函数,而退出中断函数的时候有可能使这个标志位变0,就会违背以上第二条要求了。
比如以下示范代码:
#include "REG52.H"
#include<STDIO.H>//必须包含此<STDIO.H>头文件
void main()
{
//配置串口
SCON=0x50;
TMOD=0X21;
TH1=TL1=-(11059200L/12/32/9600);//串口波特率9600。
TR1=1;
EA=1; //开总中断
ES = 0; //每次调用printf函数之前必须关闭串口中断
TI = 1; //每次调用printf函数之前必须确保TI为1
printf("Hello World");
while(1)
{
;
}
}
页:
[1]