色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在單片機中如何生成日期版本號

CHANBAEK ? 來源:小李的創客實驗室 ? 作者: 初出茅廬的小李 ? 2023-09-14 11:14 ? 次閱讀

為什么要軟件版本號呢?

生成軟件版本號是在軟件開發和維護過程中非常重要的一項任務,它有很多意義和好處,同時也有多種常見的方法。

  1. 標識和追蹤 :軟件版本號是唯一的標識符,用于區分不同版本的軟件。這有助于開發人員和用戶識別和追蹤軟件的不同發布版本。當出現問題時,可以更容易地確定特定版本中的錯誤或改進。
  2. 溝通和文檔 :版本號提供了一種簡單而清晰的方式來與團隊成員、用戶和其他利益相關者進行溝通。通過版本號,人們可以明確了解到底是哪個版本的軟件正在討論,從而更容易地協作和解決問題。
  3. 發布計劃 :版本號可以用于制定和執行軟件的發布計劃。通過設定版本號,團隊可以計劃哪些功能和改進將包含在特定版本中,以及何時發布這些版本。
  4. 用戶期望管理 :版本號可以用于管理用戶的期望。用戶可以根據版本號了解到軟件的新功能、改進和修復的問題。這有助于用戶知道他們是否需要升級或采取其他行動。
  5. 軟件穩定性 :通過良好設計的版本號系統,可以區分主要版本、次要版本和修訂版本。這有助于用戶快速識別是否有可能引入不穩定性的大幅更改。

常見生成軟件版本號的方法有哪些?

  1. 語義版本號(Semantic Versioning,SemVer) :SemVer 是一種流行的版本號方案,通常由三部分組成:主版本號、次版本號和修訂號,例如 1.2.3。主版本號增加表示不兼容的變化,次版本號增加表示向后兼容的功能添加,修訂號增加表示向后兼容的錯誤修復。
  2. 日期版本號 :使用日期作為版本號的一部分,例如 2023.09.11,可以讓人們很容易地知道軟件的發布日期。這對于在特定日期之前或之后的版本上工作或測試很有用。
  3. 自定義版本號 :一些團隊和組織使用自定義版本號方案,根據他們的需求制定。這可能包括項目標識符、構建號碼、分支信息等。
  4. 預發布版本和元數據 :有時,版本號可能包括預發布版本和元數據信息,以進一步詳細說明軟件的狀態和特性。例如,1.2.3-beta1 表示一個預發布版本,而 1.2.3+build456 表示帶有構建號的版本。
  5. 語言特定的版本號 :某些編程語言和工具具有自己的版本號規范,開發人員應遵循這些規范,以確保與相關工具的兼容性。

單片機中如何生成日期版本號?

先介紹一下c語言常見的兩個宏定義

在C語言中,有一些特殊的宏定義,用于獲取當前編譯日期和時間等信息。以下是兩個常見的宏定義示例:

  1. DATE
printf("編譯日期:%sn", __DATE__);

這個宏會在編譯時被替換為一個字符串,表示編譯源代碼的日期。通常,它的格式類似于"Sep 11 2023",表示月份、日期和年份。

  1. TIME
printf("編譯時間:%sn", __TIME__);

這個宏會在編譯時被替換為一個字符串,表示編譯源代碼的時間。通常,它的格式類似于"12:34:56",表示小時、分鐘和秒。

這些宏可以用于在代碼中記錄編譯日期和時間,這在調試和版本管理中非常有用。

具體實現

#include "version.h"
#include < string.h >
#include < stdlib.h >


void Get_Compile_Date_Base(uint8_t *Year, uint8_t *Month, uint8_t *Day)
{
	//Sep 11 2023
	constchar *pMonth[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
	constchar Date[12] = __DATE__;//取編譯日期
	uint8_t i;
	for(i = 0; i < 12; i++)if(memcmp(Date, pMonth[i], 3) == 0)*Month = i + 1, i = 12;
	*Year = (uint8_t)atoi(Date + 9); //Date[9]為2位年份,Date[7]為完整年份
	*Day = (uint8_t)atoi(Date + 4);
}


void Get_Compile_Time_Base(uint8_t *HH, uint8_t *MM, uint8_t *SS)
{
	//15:40:23
	constchar Time[10] = __TIME__;//取編譯時間
	*HH = (uint8_t)atoi(Time + 0);
	*MM = (uint8_t)atoi(Time + 3);
	*SS = (uint8_t)atoi(Time + 6);
}

char g_date_buf[10];
char g_time_buf[10];
char g_version_buf[20];
char* Get_Compile_Date(void)
{
	uint8_t  Year, Month, Day;
	Get_Compile_Date_Base(&Year, &Month, &Day);//取編譯日期
	sprintf(g_date_buf, "20%02d-%02d-%02d", Year, Month, Day);//任意格式化
	return g_date_buf;
}

char* Get_Compile_Time(void)
{
	uint8_t  HH, MM, SS;
	Get_Compile_Time_Base(&HH, &MM, &SS);//取編譯時間
	sprintf(g_time_buf, "%02d:%02d:%02d", HH, MM, SS);//任意格式化
	return g_time_buf;
}

char* Get_Compile_Ver(void)
{
	uint8_t  Year, Month, Day;
	uint8_t  HH, MM, SS;
	Get_Compile_Date_Base(&Year, &Month, &Day);//取編譯日期
	Get_Compile_Time_Base(&HH, &MM, &SS);//取編譯時間
	sprintf(g_version_buf, "20%02d-%02d-%02d-%02d-%02d-%02d",Year, Month, Day, HH, MM, SS);//任意格式化
	return g_version_buf;
}
#ifndef _VERSION_H_
#define _VERSION_H_


#include "stm32f4xx.h"


char* Get_Compile_Date(void);
char* Get_Compile_Time(void);
char* Get_Compile_Ver(void);

#endif

實現效果

printf("RI  QI:%srn",__DATE__);
	printf("SHI JIAN:%srn",__TIME__);
        printf("#############################Test#########################rn");
	printf("RI  QI:%srn",Get_Compile_Date());
	printf("SHI JIAN:%srn",Get_Compile_Time());
	printf("Soft Version:%srn",Get_Compile_Ver());

圖片

編譯時間是:2023年9月11日21點03分57秒(就是剛才)

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6035

    文章

    44553

    瀏覽量

    634744
  • 軟件
    +關注

    關注

    69

    文章

    4929

    瀏覽量

    87415
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136713
收藏 人收藏

    評論

    相關推薦

    怎么加上.bin文件的版本號

    描述:我想在工程名稱后添加改工程的版本,這樣生成的固件就是帶版本號的。 問題:目前生成的bin文件后面帶不上版本號,不知道為啥?如下圖所示。
    發表于 06-11 07:43

    請問APP版本號如何設置才有效?

    \") 。 但是不起作用,編譯信息看到的APP版本號,以及程序里用 esp_ota_get_partition_description() 讀出的版本號,都是一個串, 諸如:version: 761849b-dirty,像是隨機生成
    發表于 06-26 07:40

    【求助】請問怎么獲取安裝程序的版本號

    制作安裝程序時,使用了自動遞增版本號,現在我想在程序把這個版本號提取出來,顯示VI界面上,請問有什么方法或屬性可以獲取?找了好久沒有找
    發表于 01-29 11:16

    請問mcfw有版本號嗎?

    請問mcfw有版本號嗎? ?還是這個版本號就是SDK的版本號? 還有一個問題 ? IPNC 3.0 和 MCFW 3.0 的mcfw 是一樣的嗎?
    發表于 05-31 08:48

    怎么從閃存的.mcs讀取FPGA映像版本號

    .bit時,能夠讀取嵌入映像的某種版本號/字符串非常有用。理想情況下,版本號/字符串將從VHDL一直傳送到.bit并轉發到閃存的.mc
    發表于 02-28 06:39

    ARM的幾種版本號

    的。3.ARM不生產芯片,只設計芯片并出賣版權。4.本次用的是cortex-A8處理器中三星的S5PV2105.ARM的幾種版本號(1)ARM內核版本號,如ARMv7(v是version,版本)(2)ARM SoC
    發表于 12-14 08:54

    如何將STM32的代碼以日期作為軟件版本號去實現呢

    如何將STM32的代碼以日期作為軟件版本號去實現呢?求大神解答
    發表于 12-15 06:20

    如何生成單片機嵌入式軟件自動版本號

    ,__TIME__代替版本信息,標準C庫都具有這兩個宏,但輸出的格式太長不理想,作為一個數字強迫癥,只好自己想辦法預編譯時把當前時間處理成數字版本號。本文也是從這兩個宏下手,通過預編譯計算出數字
    發表于 01-27 07:15

    安裝后的應用程序獲取版本號

    想在exe程序打開后顯示它的當前版本,現在問題是怎么獲取打包時應用程序的版本,正常是 1.0.1 這種版本號。用屬性節點拉出來的版本是Labview的
    發表于 05-18 10:19

    求助,如何識別NUCLEO-G474RE的硬件版本號及硬件版本號對應的原理圖版本號

    如何識別NUCLEO-G474RE的硬件版本號及硬件版本號對應的原理圖版本號
    發表于 08-08 08:12

    ESP32怎么讀取固件版本號

    ESP32怎么讀取固件版本號
    發表于 10-09 06:47

    關于軟件、硬件版本號命名的常見規范

    不知道大家寫程序、畫板子時,版本號是怎么命名的? ? 最常見的就是V1.0.0這種簡單的形式命名,復雜一點就是帶有日期、后綴等版本信息。 ? 當然,版本號命名規范就像代碼規范一樣,不同
    的頭像 發表于 12-31 10:04 ?4771次閱讀

    微軟新系統開始換版本號了 敬請期待

    Windows10成絕唱!微軟新系統開始換版本號了,windows,微軟,操作系統,版本號,
    發表于 03-06 10:08 ?620次閱讀

    單片機嵌入式軟件自動版本號生成方法

    ,__TIME__代替版本信息,標準C庫都具有這兩個宏,但輸出的格式太長不理想,作為一個數字強迫癥,只好自己想辦法預編譯時把當前時間處理成數字版本號。本文也是從這兩個宏下手,通過預編譯計算出數字
    發表于 12-03 11:21 ?0次下載
    <b class='flag-5'>單片機</b>嵌入式軟件自動<b class='flag-5'>版本號</b><b class='flag-5'>生成</b>方法

    單片機添加版本號的一些小技巧

    平時我們寫程序,通常都會備注軟件版本,那么,怎么單片機中保存版本信息呢?
    的頭像 發表于 04-12 09:16 ?902次閱讀
    主站蜘蛛池模板: 香港论理午夜电影网| 性高跟鞋xxxxhd| 国产成人在线视频观看| 亚洲国产AV精品卡一卡二| 精品国产高清自在线看| xxnxx美女| 亚洲女人毛片| 欧美一区二区三区播放| 国产久久热99视频| 91精品国产入口| 双性h浪荡受bl| 美女张开腿让男人桶爽无弹窗| 高清 国产 在线 亚洲| 97一期涩涩97片久久久久久久 | 丰满老熟好大bbbxxx| 亚洲色欲色欲WWW在线丝| 全是肉的高h短篇列车| 精品久久久亚洲精品中文字幕| 成人精品视频网站| 中文字幕视频在线免费观看| 性xxxx18公交车| 人妻洗澡被强公日日澡 | 新图解av吧| 日韩一级精品久久久久| 女性酥酥影院| 毛片在线不卡| 邻家美姨在线观看全集免费| 韩剧甜性涩爱| 精品视频在线播放| 国产欧美一区二区精品性色tv | 久久看片网| 激情床戏揉胸吃胸视频| 国产精品A久久777777| 成人特级毛片| 国产成人高清精品免费观看| 国产毛A片啊久久久久久A| 果冻传媒视频在线观看完整版免费| 好湿好滑好硬好爽好深视频| 久久婷婷电影网| 轻轻挺进女教师的身体| 无限资源在线观看高清|