串行通讯——使用printf函数
扫描二维码
随时随地手机看文章
对于没有仿真器的板子来说,串口是一个非常好的调试工具,你可以将你需要观察的变量
通过串口发送到PC上进行后续分析,进行调试。这里主要介绍在Keil C中怎么使用串口来
调试程序。
程序代码如下:
#include
#include
void serial_init(void);
void main()
{
serial_init();
while(1)
{
printf("Hello,Serial Portn";
}
}
void serial_init(void)//串口初始化函数
{
TMOD = 0x20;//T1工作方式1,用于设定波特率
TH1= 0xF3;//波特率4800Bps,12MHz晶振
TL1= 0xF3;
PCON |= 0x80; //SMOD = 1,波特率加倍
SCON = 0x50;//允许发送接收
ES = 0; //禁止串口中断
TI = 1;
TR1= 1;
}
需要注意的是单片机晶振是12MHz(否则波特率设置将不正确)。
建立工程,编译,进入调试界面,选择菜单里的"Peripheraals"-"Serial"项,看到的是串口设置的
界面,可以看到,在未进行串口初始化之前,串口的参数都是0x00,其他选项也没有置位。
按 F10进入单步调试,执行serial_init函数,我们看到串口已经初始化好,波特率为4806。串口初始化好之后,我们就可以使用printf函数 输出自己需要的信息了(注意需要有stdio.h文件)。这里,我们只输出了简单的字符串信息示例。选择菜单"View"-“Serial Window #1”,可以看到空白的
区域,这是串口信息显示的地方,执行printf函数,可以看到在屏幕上打印出了“Hello,Serial Port”字样。
在实际硬件上调试程序过程中,我们在遇到问题时候可以通过这种方式观察相关变量的值,调试程序,程序没问题之后就可以将printf函数去掉了。