该思路是不用RTC时钟,根据Unix时间戳换算成北京时间,再用一定的格式打印出来。适用于长时间的跑代码,查找问题。代码简单,方便移植。
简要说明。
1、g_debug_time为32位变量,Unix时间戳,在中断里每一秒加一
2、初始化时调用debug_time_init,更改时间时也调用debug_time_init。该函数会将g_debug_time更新。
3、将需要打印时间的地方调用debug_date_time
4、串口设置打印时间调用set_debug_date_time。串口设置时间的格式必须是set debug time 19 11 14 14 54 30(中间一个空格)。年月日时分秒不足两位用0补全两位,如05
完整代码如下:
debug_timer.h文件
#ifndef DEBUG_TIMER_H_
#define DEBUG_TIMER_H_
#include "stdint.h"
#define SET_DEBUG_TIME "set debug time "
//依照RTC中的RTC_DateTypeDef 和 RTC_TimeTypeDef 自定义时间结构体
typedef struct
{
uint8_t Year; /*!< Specifies the RTC Date Year.
This parameter must be a number between Min_Data = 0 and Max_Data = 99 */
uint8_t Month; /*!< Specifies the RTC Date Month (in BCD format).
This parameter can be a value of @ref RTC_Month_Date_Definitions */
uint8_t Date; /*!