在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

基于RK3576開發板的RTC使用說明

ljx2016 ? 來源:ljx2016 ? 作者:ljx2016 ? 2025-05-07 15:04 ? 次閱讀

1. RTC介紹

RTC的英文全稱是Real-Time Clock,翻譯過來是實時時鐘芯片。實時時鐘芯片通過引腳對外提供時間讀寫接口,通常使用獨立電池供電,以保證在外部系統關電時,芯片電路正常工作,時間正常運行。

不同的時鐘芯片內部機制不一樣,但在Linux系統中驅動封裝了不同時鐘芯片的操作細節,為應用程序提供了統一的時間操作接口。

1.1 Orin-Nano的RTC資源

EASY EAI Orin-Nano 【默認不帶】RTC電路。若想底板支持RTC功能,可通過使用我司的RTC模塊進行【擴展】

wKgZO2gbBu6AOGuJAAa_SOBcH-0434.png

擴展RTC的具體操作:【首先】要把底板【斷電】,然后再把模塊【正面朝上】地插入到底板的40PIN接口上,如下圖所示。

wKgZPGgbBu6AXwLSABWgvlvL8gs296.jpg

插穩后,再進行【上電】操作。

wKgZO2gbBu-AIdANAADd2iFZmiA067.png

通過ls命令,可查看RTC芯片是否有被系統識別

ls /dev/rtc*
wKgZO2gbBu-AC85KAABIIrtCBfQ627.png

確認驅動成功加載后,可通過下方命令訪問驅動,讀出RTC芯片的所有信息。

cat /proc/driver/rtc
wKgZPGgbBu-Ab3PiAAA43uIw5bE558.png

1.2 RTC時間的讀寫

這里涉及2個時鐘,RTC芯片時鐘以及系統時鐘。手動管理RTC時鐘操作的本質就是:同步時鐘(要么把系統時鐘同步到RTC芯片時鐘上,要么把RTC芯片時鐘同步到系統時鐘)。

系統時鐘:系統時鐘本質是一個64位的整數,這個整數代表當前與Epoch Time的時間差(以秒為單位),我們稱之為時間戳。這個時鐘由CPU主芯片定時器維護,CPU掉電后,時鐘信息就會丟失。操作系統時鐘的命令為date。

date    #查詢系統時間
date -s "2023-09-20 11:18:00"    #修改系統時間

注:

* Epoch Time:是指一個特定的時間。1970年1月1日0時0分0秒。假設現在距離1970年1月1日0時0分0秒走了N秒,在Linux系統里,時間數值就是N。

RTC芯片時鐘:RTC芯片內部所維護的時間。在系統掉電后由電池進行供電。因此系統電源掉電后RTC時間仍然能夠正常運行,RTC芯片時鐘的作用是在Linux不運行時,依然可以保持時間信息。

芯片時鐘同步到系統時鐘。

sudo hwclock --hctosys

系統時鐘同步到芯片時鐘(或者是sudo hwclock -w)。

sudo hwclock --systohc

如果只想查詢RTC芯片時鐘,但不同步到系統時鐘,可以采用以下命令。

sudo hwclock -r
wKgZO2gbBu-AUiy4AAA5RTgV88Y567.png

1.3 時區和校時服務

RTC時鐘和系統時鐘用的都是UTC時間,不同地區所使用的時間,還需要考慮上時區的影響。另外:RTC時鐘除了可以被手動操作,校時服務也會影響RTC時鐘。EASY-EAI-Orin-Nano采用ntpd作為校時服務,若用戶對其機制不熟悉,可查閱文檔《系統時間管理介紹》。

2. 快速上手

2.1 例程源碼下載

到【百度網盤】上下載相關的單例程序:

鏈接:https://pan.baidu.com/s/1RXHMGpmGSEfFy0rb1VkXSg?pwd=1234

提取碼: 1234

比如在windows環境中,就把單例程序下載到:此電腦D:BaiduNetdisk (無規定,用戶可自主選擇),如下圖所示。

wKgZPGgbBvCARwpPAACOai_EbFA035.png

然后把例程【復制粘貼】到nfs掛載目錄中。(不清楚目錄如何構建的,可以參考《入門指南/開發環境準備/nfs服務搭建與掛載》)

wKgZO2gbBvCAIDXYAAEB1jwk1AM561.png

2.2 例程編譯&運行

通過adb shell進入開發板環境(不清楚如何通過adb進行調試,可以參考《入門指南/開發板調試方式介紹/adb調試》),執行下方命令定位到demo目錄,并且執行編譯操作。

cd /home/orin-nano/Desktop/nfs/12_IIC/
./build.sh
wKgZPGgbBvCABJAbAAGko1nQcbk052.png

編譯成功后,會生成一個test-rtc的可執行程序在Release目錄中。

執行下方命令則可運行測試demo,如下所示。

sudo ./Release/test-rtc

執行效果如下所示。

wKgZO2gbBvCARlOVAADUhwMpNTg985.png

3. C語言使用案例

RTC的C語言使用案例,代碼地址為12_RTC/test-rtc/main.c,供用戶編碼參考。以下代碼展示了對RTC時鐘的讀寫操作流程:

int main(int argc, char const *argv[])
{
    const char *strDateTime = "2023-09-21 15:22:37";
    // 將字符串轉換為tm結構體類型的時間信息
    struct tm tm = {0};
    strptime(strDateTime, "%Y-%m-%d %H:%M:%S", &tm);
    // 打開RTC設備
    int rtc_fd = open("/dev/rtc0", O_RDWR);
    if (rtc_fd < 0) {
        perror("open RTC device /dev/rtc0 faild.");
        close(rtc_fd);
        return -1;
    }
    printf("---設置參數前日期時間---n");
    system("date");
    
    /***  1.關閉網絡校時服務 ***/
    system("systemctl stop ntp.service");
    
    /***  2.將預設好的時間寫入【RTC時鐘】 ***/
    struct rtc_time rtc_tm;
    rtc_tm.tm_sec  = tm.tm_sec;
    rtc_tm.tm_min  = tm.tm_min;
    rtc_tm.tm_hour = tm.tm_hour;
    rtc_tm.tm_mday = tm.tm_mday;
    rtc_tm.tm_mon  = tm.tm_mon;
    rtc_tm.tm_year = tm.tm_year;
    if (ioctl(rtc_fd, RTC_SET_TIME, &rtc_tm) < 0) {
        perror("set data time to rtc0");
        perror("RTC時間設置失敗");
        close(rtc_fd);
        return -1;
    }
    
    /***  3.將【RTC時鐘】同步回【系統時鐘】 ***/
    // 讀出剛才寫入的RTC時鐘參數
    if (ioctl(rtc_fd, RTC_RD_TIME, &rtc_tm) < 0) {
        perror("RTC時間讀取失敗");
        close(rtc_fd);
        return -1;
    }
    close(rtc_fd);
    tm.tm_sec  = rtc_tm.tm_sec;
    tm.tm_min  = rtc_tm.tm_min;
    tm.tm_hour = rtc_tm.tm_hour;
    tm.tm_mday = rtc_tm.tm_mday;
    tm.tm_mon  = rtc_tm.tm_mon;
    tm.tm_year = rtc_tm.tm_year;
    struct timeval tv;
    tv.tv_sec = mktime(&tm);
    tv.tv_usec = 0;
    // 同步時間到系統時鐘
    if(0 != settimeofday(&tv, (struct timezone *)0)){
        perror("系統時間設置失敗");
    }
    printf("---設置參數后日期時間---n");
    system("date");
    
    return 0;
}


審核編輯 黃宇

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

    關注

    25

    文章

    5421

    瀏覽量

    101125
  • 時鐘芯片
    +關注

    關注

    2

    文章

    259

    瀏覽量

    40467
  • RTC
    RTC
    +關注

    關注

    2

    文章

    604

    瀏覽量

    68108
  • rk3576
    +關注

    關注

    1

    文章

    121

    瀏覽量

    494
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于RK3576開發板的WDT看門狗使用說明

    RK3576開發板的WDT使用說明
    的頭像 發表于 05-06 17:15 ?342次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的WDT看門狗<b class='flag-5'>使用說明</b>

    基于RK3576開發板的PCIE固態硬盤使用說明

    RK3576開發板的PICE固態硬盤使用方法
    的頭像 發表于 05-06 17:33 ?1022次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的PCIE固態硬盤<b class='flag-5'>使用說明</b>

    基于RK3576開發板的TF卡槽使用說明

    RK3576開發板使用TF卡槽
    的頭像 發表于 05-07 09:24 ?402次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的TF卡槽<b class='flag-5'>使用說明</b>

    基于RK3576開發板的PWN使用說明

    RK3576開發板使用PWN教程及Demo
    的頭像 發表于 05-07 14:07 ?470次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的PWN<b class='flag-5'>使用說明</b>

    基于RK3576開發板的人臉識別算法

    RK3576開發板展示人臉識別算法例程和API說明
    的頭像 發表于 05-07 16:48 ?436次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的人臉識別算法

    【米爾RK3576開發板評測】+項目名稱值得購買的米爾RK3576開發板

    米爾依然是核心加擴展板的模式,我拿到手的開發板,核心已經通過LGA貼片,焊好了。 開發板做工很好,布線細致工整。 RK3576
    發表于 01-08 22:59

    新品體驗 | RK3576開發板

    RK3399、RK3566、RK3568、RK3588、RK3576等型號的核心與評估
    的頭像 發表于 11-01 08:08 ?1607次閱讀
    新品體驗 | <b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>

    米爾RK3576開發板特惠活動!

    近日,米爾電子發布基于瑞芯微RK3576核心開發板RK3576作為國產熱門處理器,其高性能數據處理能力、領先的AI智能分析、強大的擴展性與兼容性受到廣大
    的頭像 發表于 11-12 01:00 ?632次閱讀
    米爾<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>特惠活動!

    敬請期待 | 迅為RK3576開發板即將發布

    敬請期待 | 迅為RK3576開發板即將發布
    的頭像 發表于 11-22 15:13 ?466次閱讀
    敬請期待 | 迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>即將發布

    迅為RK3576開發板核心與底板接口硬件介紹

    迅為RK3576開發板核心與底板接口硬件介紹
    的頭像 發表于 01-14 15:15 ?1112次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>核心<b class='flag-5'>板</b>與底板接口硬件介紹

    迅為RK3576開發板Android?多屏顯示

    迅為RK3576開發板Android?多屏顯示
    的頭像 發表于 01-16 16:58 ?697次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>Android?多屏顯示

    基于RK3576開發板的MIPI-DSI使用

    MIPI DSI接口是由MIPI聯盟下的Display工作組指定的DSI(Display Serial Interface)的接口標準。rk3576開發板使用mipi-dsi教程
    的頭像 發表于 05-06 16:11 ?154次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的MIPI-DSI使用

    基于RK3576開發板的揚聲器和耳機使用說明

    RK3576開發板的揚聲器和耳機使用說明
    的頭像 發表于 05-06 16:36 ?98次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的揚聲器和耳機<b class='flag-5'>使用說明</b>

    基于RK3576開發板的HDMI-OUT使用說明

    RK3576開發板的HDMI-OUT使用說明
    的頭像 發表于 05-06 16:48 ?87次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的HDMI-OUT<b class='flag-5'>使用說明</b>

    基于RK3576開發板的人員檢測算法

    展示了RK3576開發板的人員檢測算法例程及API說明
    的頭像 發表于 05-07 17:33 ?91次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的人員檢測算法
    主站蜘蛛池模板: 午夜理伦片免费 | 精品视频69v精品视频 | 色黄视频 | 美女扒开内裤让男人桶 | 在线视频图片小说 | 最刺激黄a大片免费观看 | 久久久久久天天夜夜天天 | 一本视频在线 | 美女天天操 | 免费观看激色视频网站bd | 亚洲宅男天堂a在线 | 人人看人人鲁狠狠高清 | 永久在线观看 | 爱操视频在线观看 | 欧美乱妇高清无乱码 | 日本免费一区二区视频 | 五月天婷婷视频在线观看 | 亚州色图欧美色图 | www.福利| 色老头久久网 | 一及黄色 | 五月六月伊人狠狠丁香网 | 国产三及| 好大好硬好深好爽的视频 | 一区二区三区影视 | 欧美一区二区三区高清视频 | 日本免费不卡视频一区二区三区 | 国产精品欧美激情第一页 | 成人永久免费视频 | 在线天堂中文在线资源网 | 一区不卡在线观看 | 怡红院网址 | 亚洲一区中文 | 干成人| 我想看一级播放片一级的 | 人人玩人人弄人人曰 | 久久青草国产精品一区 | 好吊色视频988gao在线观看 | 免费视频在线视频观看1 | 国产www在线播放 | 丁香在线|