printf函数在底层是用fputc实现的,可以实现fputc将数据打印到串口。
1. 代码实现
int fputc(int ch, FILE *f)
{
/* Write a character to the USART */
USART_SendData8(USART2, ch); // 发送数据
/* Loop until the end of transmission */
while (USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET); // 直到发送完成
return ch;
}
2. 出错处理
printf重定向到串口,编译可能提示如下错误
解决办法是:按照图示打开选项做如下修改