程序调完以后我们可能不希望再打印调试信息,这个时候可以写一个条件编译,让printf失效。
#define LOG 1
int fputc(int ch, FILE *f)
{
#if LOG
USART_SendData( USART1, (uint8_t)ch );
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
#endif
return ch;
}
在不想打印串口信息的时候将#define LOG 1改为#define LOG 0 即可,在自己调试完不需要一一删除printf代码。
但是这样做的坏处是所有printf都会失效,如果想要部分printf失效,则可以在编写的时候提前想好哪些消息调完程序之后用不到,给这些printf的外围套上条件编译。
#define LOG 0
#if LOG
printf("info: pwm_value \r\n");
#endif
printf("Program End \r\n");
标签:ch,LOG,串口,STM32,编译,打印消息,printf,define
From: https://www.cnblogs.com/Sound-Sleep/p/17032118.html