针对该款stm32芯片(stm32f107vct6)没有软件仿真库的问题,设计了新的调试方式,即通过串口打印文件名、函数名、行号等信息方便代码调试。
在工程中新建一个debug.h文件,写入以下代码
#ifndef __DEBUG__H_
#define __DEBUG__H_
#include
#define DEBUG
#ifdef DEBUG
#define debug(fmt, ...) printf("%s %s
%s %s %d:"fmt, __FILE__, __FUNCTION__, __DATE__, __TIME__, __LINE__,
##__VA_ARGS__)
#else
#define debug(fmt, ...)
#endif
#endif
在需要用到debug调试的.c文件中包含debug.h
用法为需要调试时debug(“你要打印的信息”);程序会将你要打印的信息和行号函数名,文件名等信息一同打印的串口1。当然串口1必须是经过重定向的,具体重定向的方法可以百度。
如果不需要打印调试信息,直接将DEBUG的宏定义注释掉即可。
没加打印信息时程序运行结果:
没加打印信息时
加上打印信息后,程序运行结果:
加上打印信息后