1. 使用__DATE__ 和__TIME__获取编译日期和时间。
2. 将__DATE__ 和__TIME__转换成UINT
3. 将转换后的数赋值给版本号。
4. 设置工程保证每次都会重新编译对应文件。
对应函数如下:
uint8_t VER_MAIN;
uint8_t VER_SUB;
uint8_t VER_MIN;
#include <stdlib.h>
void temp_version(void)
{
// 获取编译日期和时间的字符串
const char* compileDate = __DATE__;
const char* compileTime = __TIME__;
// 将月份映射到数字
char monthStr[4];
strncpy(monthStr, compileDate, 3);
// 解析时间字符串,提取小时和分钟
int hour, minute;
sscanf(compileTime, "%d:%d", &hour, &minute);
uint8_t day = atoi(compileDate + 4);
VER_MAIN = day;
VER_SUB = hour;
VER_MIN = minute;
}
工程设置:
1.在工程中右击对应文件,选择"构建选择的文件"
2.复制控制台构建信息,需要复制整行
3.在构建步骤中粘贴上一步复制的内容。