STM32中串口输出使用printf函数,有两种方法:1.使用microlib;2.使用标准库;
(1) 使用microlib方法
①添加printf的头文件 #include <stdio.h>
②重写int fputc(int ch FILE *f)函数
int fputc(int ch FILE *f);函数
int fputc(int ch FILE *f)
{
USART_SendData(USART1 (uint8_t) ch); while (USART_GetFlagStatus(USART1 USART_FLAG_TC) == RESET); return ch;
}
若未使用库函数,需将USART_SendData、USART_GetFlagStatus重写。
③修改一下选中Use MicroLIB Target——Code Generation——选中Use MicroLIB。
(2) 使用标准库
不选中Use MicroLIB 。
① 添加printf的头文件 #include <stdio.h>
② 加入下面代码
③ 01 //加入以下代码支持printf函数而不需要选择use MicroLIB
需要更详细了解的话,可以查看这篇文档:https://blog.csdn.net/sworssman/article/details/52999840