MCU编译时间模板 永久适用

MCU编译时间模板 永久适用


/ 编译日期
1、Jan. January 一月;
2、Feb. February 二月;
3、Mar. March 三月;
4、Apr. April 四月;
5、May无缩写 五月;
6、Jun. June 六月;
7、Jul. July 七月;
8、Aug. August 八月;
9、Sept. September九月;-----》多出一位 所以看12 月才是这样 Dec 6 2022 两个空格 9月 Sept 6 2022 -》月空格日空格年
10、Oct. October 十月;
11、Nov. November 十一月;
12、Dec. December 十二月。*/
*


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>

#define KEIL_MDK_COMPILE_YEAR		( (__DATE__[7] - '0') * 1000 + (__DATE__[8] - '0') * 100 + (__DATE__[9] - '0') * 10 + (__DATE__[10] - '0') )
/* 一月、六月的缩写第三个字母一样(n),三月、四月的缩写第三个字母一样(r)。此时需要根据第二个字母区分 */
/*x>y? x:y :三目运算符 如果x>y 返回x  否则返回y   这里只返回满足条件的第一个*/
#define KEIL_MDK_COMPILE_MONTH		( 	(__DATE__[2] == 'b' ? 2 :	\
                                        (__DATE__[2] == 'y' ? 5 :	\
                                        (__DATE__[2] == 'l' ? 7 :	\
                                        (__DATE__[2] == 'g' ? 8 :	\
                                        (__DATE__[2] == 'p' ? 9 :	\
                                        (__DATE__[2] == 't' ? 10 :	\
                                        (__DATE__[2] == 'v' ? 11 :	\
                                        (__DATE__[2] == 'c' ? 12 :	\
                                        (__DATE__[2] == 'n' ?		\
                                        (__DATE__[1] == 'a' ? 1 : 6) :	\
                                        (__DATE__[1] == 'a' ? 3 : 4)))))))))) )

//日
#define KEIL_MDK_COMPILE_DATE    ( (__DATE__[4] == ' ') ? (__DATE__[5] - '0') : ((__DATE__[4] - '0') * 10 + (__DATE__[5] - '0')) )

#define KEIL_MDK_COMPILE_HOUR		( (__TIME__[0] - '0') * 10 + (__TIME__[1] - '0') )
#define KEIL_MDK_COMPILE_MINUTE		( (__TIME__[3] - '0') * 10 + (__TIME__[4] - '0') )
#define KEIL_MDK_COMPILE_SECOND		( (__TIME__[6] - '0') * 10 + (__TIME__[7] - '0') )

#define SOFTWARE_VERSION			"01.12.34"		//版本号 固定为xx.xx.xx
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    qDebug()<<"__DATE__="<<__DATE__; //Dec  6 2022
    qDebug()<<"__DATE__ size="<<strlen (__DATE__);//11
    qDebug()<<"__DATE__[0]="<<__DATE__[0];
    qDebug()<<"__DATE__[1]="<<__DATE__[1];
    qDebug()<<"__DATE__[2]="<<__DATE__[2];
    qDebug()<<"__DATE__[3]="<<__DATE__[3];
    qDebug()<<"__DATE__[4]="<<__DATE__[4];
    qDebug()<<"__DATE__[5]="<<__DATE__[5];

    qDebug()<<"__DATE__[6]="<<__DATE__[6];
    qDebug()<<"__DATE__[7]="<<__DATE__[7] - '0';
    qDebug()<<"__DATE__[8]="<<__DATE__[8];
    qDebug()<<"__DATE__[9]="<<__DATE__[9];
    qDebug()<<"__DATE__[10]="<<__DATE__[10];
    qDebug()<<"KEIL_MDK_COMPILE_YEAR="<<KEIL_MDK_COMPILE_YEAR;//年 2022
    qDebug()<<"KEIL_MDK_COMPILE_MONTH="<<KEIL_MDK_COMPILE_MONTH; //月 12
    qDebug()<<"KEIL_MDK_COMPILE_DATE="<<KEIL_MDK_COMPILE_DATE; //日 6
    qDebug()<<"KEIL_MDK_COMPILE_HOUR="<<KEIL_MDK_COMPILE_HOUR;//时
    qDebug()<<"KEIL_MDK_COMPILE_MINUTE="<<KEIL_MDK_COMPILE_MINUTE; //分
    qDebug()<<"KEIL_MDK_COMPILE_SECOND="<<KEIL_MDK_COMPILE_SECOND; //秒
}

MainWindow::~MainWindow()
{
    delete ui;
}

//电源MCU发送
void MainWindow::on_pushButton_clicked()
{
    uint8_t array[10] = {0x82, 0x00, 2};

    static uint8_t flag = 0;    //PWH2022.10
    flag = 1;

    printf("\r\n__DATE__ %s, ", __DATE__);
    printf("__TIME__ %s, ", __TIME__);
    array[3] = KEIL_MDK_COMPILE_YEAR >> 8;
    array[4] = KEIL_MDK_COMPILE_YEAR;
    array[5] = KEIL_MDK_COMPILE_MONTH;
    array[6] = KEIL_MDK_COMPILE_DATE;
    array[7] = KEIL_MDK_COMPILE_HOUR;
    array[8] = KEIL_MDK_COMPILE_MINUTE;
    array[9] = KEIL_MDK_COMPILE_SECOND;
    printf("编译时间: %d/%d/%d %d:%d:%d",
    KEIL_MDK_COMPILE_YEAR, KEIL_MDK_COMPILE_MONTH, KEIL_MDK_COMPILE_DATE,
    KEIL_MDK_COMPILE_HOUR, KEIL_MDK_COMPILE_MINUTE, KEIL_MDK_COMPILE_SECOND);
    SendToConSys(array, 10);	//编译日期

    printf("版本号: Ver%s\r\n", SOFTWARE_VERSION);
    array[2] = 7;	//命令字2:控制版本号
    array[3] = SOFTWARE_VERSION[0] - '0';
    array[4] = SOFTWARE_VERSION[1] - '0';
    array[5] = SOFTWARE_VERSION[3] - '0';
    array[6] = SOFTWARE_VERSION[4] - '0';
    array[7] = SOFTWARE_VERSION[6] - '0';
    array[8] = SOFTWARE_VERSION[7] - '0';
    SendToConSys(array, 9);
}
//数据转移
int MainWindow::SendToConSys(uint8_t *p, uint16_t len)
{
	uint16_t Length, i;
	uint16_t checksum = 0;
	int bRes = -1;
	_DI();
	Length = FIFO_GET_IDEL_COUNT(ConSysCommTxFifo);     //获取Fifo剩余空间?
	//DebugPrintf("\r\n ConSysComm Tx Fifo Length = %d ",Length);
	if(Length > len + 4)
	{
		FIFO_PUT_ONE(ConSysCommTxFifo,0xFF);
		FIFO_PUT_ONE(ConSysCommTxFifo,0x55);
		FIFO_PUT_ONE(ConSysCommTxFifo,len+1);  		//长度(包括命令、参数、校验和三者之和的总长度)
		checksum = (len+1);
		for(i = 0;i < len;i++)
		{
			checksum += p[i];
			FIFO_PUT_ONE(ConSysCommTxFifo, p[i]);  //将命令、参数写进队列
		}
		checksum = checksum%256;
		FIFO_PUT_ONE(ConSysCommTxFifo,checksum);  //将校验和进队列
		bRes = 0;
	}
	_EI();
	if(len)
	{
		if(bRes < 0)
		{
			DebugPrintf("FIFO Length = %d ----- len = %d ",Length,len);
			DebugPrintf("\r\n Error: Put LPC --> ControlSystem message to Fifo error:");
		}
		else
		{
			//DebugPrintf("\r\n Put to Fifo: LPC --> ControlSystem: ");
		}
			
		for(i = 0; i < len; i++)
		{
			//DebugPrintf("%02x ", p[i]);
		}
			
	}
	return bRes;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qt历险记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值