1.printf系列的函数实现
懂得了单片机通过串口传输数据给电脑端窗口查看,那么,有时我们需要发送字符串,有时需要发送一个变量的数值是多少,以及还要发送回车换行这三种情况。所以我们把这三个功能函数封装起来,方便后续的串口使用。
首先笔者写的“void printf_str(u8 *str)”函数就是专门用来发送字符串给电脑端的。
其次“void printf_num(u32 num)”发送的变量的数值只支持显示十进制数0~4294967295,也就是参数是u32类型。
最后“void printf_rn()”就是发送回车换行符了。
关于这三部分的代码大家可以尝试去阅读一下是怎么实现的,如果有很多地方看不懂那么可以不用深究,往下学,笔者会在后面的知识点中讲解其中的运用。
我们希望串口这部分功能模块也能像定时器那样封装一个单独文件来使用。
所以创建好“uart.c”和“uart.h”文件,复制以下代码
2.uart.c的代码
#include #include void ConfigUART(u16 baud) { SCON = 0x50; //配置串口为模式1 TMOD &= 0x0F; //清零T1的控制位 TMOD |= 0x20; //配置T1为模式2 TH1 = 256 - (11059200/12/32)/baud;//计算T1重载值 TL1 = TH1; //初值等于重载值 ET1 = 0; //禁止T1中断 ES = 1; //使能串口中断 TR1 = 1; //启动T1 } void printf_str(u8 *str) { while(*str != '