首页 > 其他分享 >STM32用串口printf打印消息时使用条件编译

STM32用串口printf打印消息时使用条件编译

时间:2023-01-07 09:11:05浏览次数:54  
标签:ch LOG 串口 STM32 编译 打印消息 printf define

程序调完以后我们可能不希望再打印调试信息,这个时候可以写一个条件编译,让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

相关文章

  • STM32串口函数移植以后打印不出数据的可能原因
    MicroLib是STM32中的精简过的C库,提供了有限的stdio.h文件内容。......
  • STM32F103 Proteus 仿真 编译用GCC
    原理图只要一个MCU就可以了,双击MCU,编辑固件,选择GCCforARM,由模板创建默认工程。会遇到两个错误:  1.STM32GCCARM编译_STATIC_INLINE出错,     在第一个......
  • 2.4寸串口屏应用于家用包装封口机
    由于长时间的放置,食物发生变质后被浪费丢弃的情况屡见不鲜,尤其是在我们的家庭厨房中,没有被及时烹制的食材,其归宿就是垃圾桶。对于食物的储存与保鲜,人们从古至今尝试了不少......
  • java读取虚拟串口数据
    语言:java虚拟串口工具:VirtualSerialPortDriverPro9.0,选择pairing模块下,点击addvirtualparing按钮即可创建串口对,还无法自定义out和in。串口助手:xcom2.6,在串口选择......
  • 使用插件式开发称重仪表驱动,RS232串口对接各类地磅秤数据实现ERP管理
    在ERP系统中,采集一线的生产数据是重要工作之一,而称重计量是企业的核心资产数据,人工计重费时费力,还容易出错,重量数据是否正确,直接影响企业的采购或销售额。基于此,由系统对接......
  • STM32简介
    1.STM32分类STM32有不同内核的IC,如下图所示:2.命名规则命名规则如下图所示,如我有一款STM32芯片名字为:STM32F407ZGT6STM32:ST公司的ARM32bit微控制器F:通用性其......
  • STM32用寄存器将输入模式配置成上拉或者下拉模式的方式
    我注意到配置CRH/CRL寄存器时写入10会配置成上拉/下拉输入模式,于是去网上搜罗了一下,寻找寄存器中是如何配置成这两种不同的输入方式的。结果:CRH/CRL寄存器写1默认是下拉......
  • STM32串口代码
    介绍在usart.c中进行了:usart的初始化发送字符串函数的编写printf和scanf的C库重定向中断中根据STM32接受到的信息进行开灯和关灯操作在led.c中进行了:led的GPIO的......
  • STM32 独立看门狗(IWDG)
    1、定义:看门狗,又叫watchdog,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中输入叫做喂狗,输出一般连接到另外一个部分的复位端,一般是连接到单片机。看门狗......
  • Linux的串口非标准波特率设置更改
    用的是全志的R528SDK,Linux内核是5.4,新增加一个250000的非标准波特率参考网络大神文档,实践并记录宝贵的经验。方法:1、修改内核的/include/uapi/asm-generic/termbits.h......