stm32专题十二:DEBUG调试宏 C语言 调试宏

       调试宏在c编程中比较重要,通常用于前期测试打印调试信息,然后正式发布时,只需要修改宏,就能取消打印全部调试信息,非常方便。

fmt为希望输出的调试信息,比较关键的就是(fmt,...)和##__VA_ARGS__,__VA_ARGS__用于把...替换成宏并连接。

典型用法:

void DefaultFlashSet(void)
{
  // 若Flash标记地址的值没有被正确的写入,则重新写入,只会在全片擦除后执行
	if ((InternalFlashRead(FLASH_SIGN_ADDR) != FLASH_WRITE_SIGN)) {
		DEBUG_INFO("Flash擦除");
    InternalFlashWrite(FLASH_WRITE_ADDR, MAX_LED_NUM);
  }
	else {
		DEBUG_INFO("读取数据成功");
	}
}
DEBUG_INFO("这是第%d条调试打印", 6);

串口打印结果

debug.h

/**
 ******************************************************************************
 *              Copyright (c) 2019 temp. All Rights Reserved.
 * @file    debug.h
 * @author  
 * @brief   调试宏头文件
 * @version V1.0
 * @data    2019/08/09
 * @note    None
 ******************************************************************************
 */

#ifndef __DEBUG_H
#define __DEBUG_H

#include <stdio.h>

#define DEBUG

#ifdef DEBUG

#define DEBUG_LINE() 																												\
  printf("Log: [%s:%s] line = %d\n", __FILE__, __func__, __LINE__)
#define DEBUG_INFO(fmt, ...)                                                \
  printf("Log: [%s:%s] line = %d\n" fmt "\n", __FILE__, __func__, __LINE__, \
         ##__VA_ARGS__)

#else

#define DEBUG_LINE()
#define DEBUG_INFO(fmt, ...)

#endif

#endif /* __DEBUG_H */

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值