KEILC printf 可以方便调试人员测试程序,要想使用printf 需要满足一下条件。
1,重定义以下函数
//重定向c库函数printf到串口DEBUG_USART,重定向后可使用printf函数
int fputc(int ch, FILE *f)
{
/* 发送一个字节数据到串口DEBUG_USART */
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 1000);
return (ch);
}
//重定向c库函数scanf到串口DEBUG_USART,重写向后可使用scanf、getchar等函数
int fgetc(FILE *f)
{
int ch;
HAL_UART_Receive(&huart1, (uint8_t *)&ch, 1, 1000);
return (ch);
}
2,#include <stdio.h>,
3,勾选use microlib

我一开始就不知道第三条,感谢群友帮助。
20240405增加
屏蔽printf 警告的方法
-Wno-invalid-source-encoding