在C语言中,当需要打印信息时一般都会用printf函数,比如要打印Hello World!
C语言中是这样写的 printf('Hello World!');
回到单片机上,如果单片机需要发送数据需要调用发送寄存器,将需要发送的数据存入发送寄存器,这个寄存器一般是八位的,对于一些字符串或者一些数据如果都是用这种存入发送寄存器的方式就会显得不那么方便,不那么灵活。
但是如果把printf函数用在串口发送上,一切就变得很简单了。不论是打印字符串还是打印数据都会变得很简单。
实现的方法:加入以下程序即可,本次以串口1举例,开发环境是Keil
struct __FILE
{
int handle;
};
FILE __stdout;
_sys_exit(int x)
{
x = x;
}
//重定义fputc函数
int fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0);
USART1->DR = (u8) ch;
return ch;
}