STM32使用printf的方法
工作需要,连接打印机,如果用printf 输出汉字会省力很多
方法一:
//加入以下代码就不用选择使用微库
#if 1
#pragma import(__use_no_semihosting)
struct __FILE
{
int handle;
};
FILE __stdout;
void _sys_exit(int x)
{
x = x;
}
int fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0);
USART1->DR = (u8) ch;
return ch;
}
#endif
例子:
int main(void)
{
uart_init(9600);
printf("hellow");
}
方法二:使用微库,只需要定义fputc
在代码uart.c 中添加 如下代码 (目的是为了调用stdio库中的print 函数)
#include "stdio.h"//里面包含printf
int fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0);//循环发送,直到发送完毕
USART1->DR = (u8) ch;
return ch;
}