91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

單片機的RTC獲取網(wǎng)絡(luò)時間

撞上電子 ? 2023-12-23 08:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

理解網(wǎng)絡(luò)同步校準RTC的原理需要考慮NTP、SNTP、RTC這三個關(guān)鍵組件的作用和交互。下面詳細解釋這個過程:

1. NTP(Network Time Protocol):

協(xié)議目的:NTP是用于同步計算機和設(shè)備時鐘的協(xié)議。它通過在網(wǎng)絡(luò)上與時間服務(wù)器通信,獲取準確的時間信息。工作原理:NTP使用一種分層的客戶端-服務(wù)器體系結(jié)構(gòu)??蛻舳讼蚍?wù)器發(fā)起請求,服務(wù)器回應(yīng)包含其本地時間的響應(yīng)。NTP客戶端使用這些響應(yīng)來調(diào)整本地時鐘。

2. SNTP(Simple Network Time Protocol):

輕量級版本:為了適應(yīng)嵌入式系統(tǒng)和資源受限設(shè)備,SNTP是NTP的簡化版本。它保留了核心的時間同步功能。工作方式:SNTP客戶端通過輪詢或監(jiān)聽模式向NTP服務(wù)器發(fā)送請求。服務(wù)器響應(yīng)包含當前時間。SNTP客戶端使用這個時間信息來調(diào)整本地時鐘。

3. RTC(Real-Time Clock):

硬件設(shè)備:RTC是一種硬件設(shè)備,通常嵌入在計算機或嵌入式系統(tǒng)中,用于跟蹤時間。時鐘漂移:由于RTC的硬件特性,它的時鐘可能會產(chǎn)生漂移,即時鐘不會完美地保持準確。這就需要定期校準。

4. 示例中的步驟解釋:

SNTP初始化:在初始化代碼中,配置SNTP模塊,包括指定NTP服務(wù)器地址和設(shè)置SNTP的操作模式。這告訴SNTP模塊應(yīng)該如何獲取時間信息。

sntp_setoperatingmode(SNTP_OPMODE_POLL);sntp_setservername(0, NTP_SERVER);sntp_init();

SNTP回調(diào)函數(shù):注冊一個回調(diào)函數(shù),該函數(shù)在SNTP成功獲取到時間時被調(diào)用。在這個回調(diào)函數(shù)中,將獲取到的UNIX時間戳轉(zhuǎn)換為RTC的時間格式,并更RTC。

void sntp_callback(struct timeval *tv) {// Callback function called when SNTP obtains time from the server
RTC_TimeTypeDef sTime; RTC_DateTypeDef sDate;
// Convert UNIX timestamp to RTC structures struct tm *timeinfo = localtime((const time_t*)&tv->tv_sec);
sTime.Hours = timeinfo->tm_hour; sTime.Minutes = timeinfo->tm_min; sTime.Seconds = timeinfo->tm_sec;
sDate.WeekDay = timeinfo->tm_wday; sDate.Month = timeinfo->tm_mon + 1; // tm_mon is 0-indexed sDate.Date = timeinfo->tm_mday; sDate.Year = timeinfo->tm_year + 1900; // tm_year is years since 1900
// Update RTC with obtained time HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN); HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BIN);}

等待同步:在主循環(huán)中,等待SNTP成功獲取時間。這確保在主代碼開始執(zhí)行之前,RTC已經(jīng)校準。

while (!sntp_get_sync_status()) { HAL_Delay(100);}

主循環(huán):在主循環(huán)中,你可以執(zhí)行其他與應(yīng)用相關(guān)的任務(wù)。此時,RTC已經(jīng)被成功校準。

while (1) { // Your main code here}


5. 注意事項:

定期同步:SNTP模塊會定期向NTP服務(wù)器發(fā)起請求,以保持本地時鐘的準確性。NTP服務(wù)器選擇: 在實際應(yīng)用中,應(yīng)該選擇可靠性高且準確性好的NTP服務(wù)器。這可能需要在特定的網(wǎng)絡(luò)環(huán)境中選擇合適的服務(wù)器。

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

    關(guān)注

    6076

    文章

    45495

    瀏覽量

    670439
  • RTC
    RTC
    +關(guān)注

    關(guān)注

    2

    文章

    653

    瀏覽量

    71830
  • 網(wǎng)絡(luò)同步器

    關(guān)注

    0

    文章

    35

    瀏覽量

    2931
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    時間同步獲取時間

    新手一枚,對單片機原理還不是很清楚,求教:TinyOS中的時間同步首先要獲取本地時間戳,getStartTime(),想知道它是怎么獲取
    發(fā)表于 03-20 10:37

    如何對stm8l05x單片機rtc進行初始呢

    關(guān)于stm8l05x系列單片機rtc初始化問題在開始項目時,用到的單片機是stm8l052的單片機,為了降低功耗就要在活躍停止模式和正常運行模式之間切換,即每隔一段
    發(fā)表于 12-09 06:28

    如何利用WIFI模塊獲取NTP服務(wù)器中的網(wǎng)絡(luò)時間

    There are different ways to be brave.勇敢有不同種方式。一、需求在單片機上實現(xiàn)RTC的驅(qū)動,利用WIFI模塊獲取NTP服務(wù)器中的網(wǎng)絡(luò)
    發(fā)表于 01-21 07:32

    單片機自學網(wǎng)單片機網(wǎng)絡(luò)教程

    單片機自學網(wǎng)單片機網(wǎng)絡(luò)教程
    發(fā)表于 03-21 20:33 ?223次下載

    RTC單片機例程

    飛思卡爾半導體(Freescale Semiconductor)單片機例程。
    發(fā)表于 02-18 15:44 ?2次下載

    STM32單片機RTC模塊的分析

    今天給大家介紹一下 STM32 單片機RTC 模塊和它的后備區(qū)域寄存器,我們在使用 51 單片機的時候,如果需要用到 RTC 實時時鐘,通常會使用一顆外置的
    發(fā)表于 11-11 15:51 ?36次下載

    單片機定時器中的實時時鐘(RTC)注意事項

    實時時鐘(RTC)是專用于維持一秒時基的計時器。此外,RTC通常用于在軟件或硬件中跟蹤時鐘時間和日歷日期。RTC的許多功能是非常專業(yè)的,是維持高精度和非常可靠的操作所必需的。
    的頭像 發(fā)表于 06-29 09:28 ?8386次閱讀
    <b class='flag-5'>單片機</b>定時器中的實時時鐘(<b class='flag-5'>RTC</b>)注意事項

    簡析獲取單片機代碼運行時間的方法資料下載

    電子發(fā)燒友網(wǎng)為你提供簡析獲取單片機代碼運行時間的方法資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-24 08:49 ?12次下載
    簡析<b class='flag-5'>獲取</b><b class='flag-5'>單片機</b>代碼運行<b class='flag-5'>時間</b>的方法資料下載

    華大單片機深度休眠時RTC與LPUART同時工作設(shè)置方法

    華大單片機L系列為其超低功耗(LOW POWER)系列單片機,可以做到低功耗為0.5uA以內(nèi),喚醒時間4us。其低功耗性能在行業(yè)內(nèi)也是可圈可點。有個別模塊可以工作在深度休眠模式中,如RTC
    發(fā)表于 10-12 09:14 ?2121次閱讀

    關(guān)于stm8l05x系列單片機rtc初始化問題

    關(guān)于stm8l05x系列單片機rtc初始化問題在開始項目時,用到的單片機是stm8l052的單片機,為了降低功耗就要在活躍停止模式和正常運行模式之間切換,即每隔一段
    發(fā)表于 11-26 14:36 ?10次下載
    關(guān)于stm8l05x系列<b class='flag-5'>單片機</b><b class='flag-5'>rtc</b>初始化問題

    華大單片機深度休眠時RTC與LPUART同時工作設(shè)置方法

    華大單片機L系列為其超低功耗(LOW POWER)系列單片機,可以做到低功耗為0.5uA以內(nèi),喚醒時間4us。其低功耗性能在行業(yè)內(nèi)也是可圈可點。有個別模塊可以工作在深度休眠模式中,如RTC
    發(fā)表于 01-12 18:39 ?5次下載
    華大<b class='flag-5'>單片機</b>深度休眠時<b class='flag-5'>RTC</b>與LPUART同時工作設(shè)置方法

    【解決方案】STM32L系列單片機RTC讀取時間,一會兒要走時,一會兒又不走時的解決方案

    單片機STM32L476RG(用的nucleo開發(fā)板),調(diào)試RTC的過程中遇到了HAL_RTC_GetTime函數(shù)讀取的時間一會兒走,一會兒不走的問題,如圖所示。要等很長一段
    發(fā)表于 01-17 09:30 ?3次下載
    【解決方案】STM32L系列<b class='flag-5'>單片機</b>的<b class='flag-5'>RTC</b>讀取<b class='flag-5'>時間</b>,一會兒要走時,一會兒又不走時的解決方案

    實用 | 獲取單片機代碼運行時間的方法

    單片機編程者需要知道自己的程序需要花費多長時間、while周期是多少、delay延時是否真如函數(shù)功能描述那樣精確延時。
    發(fā)表于 02-08 16:50 ?0次下載
    實用 | <b class='flag-5'>獲取</b><b class='flag-5'>單片機</b>代碼運行<b class='flag-5'>時間</b>的方法

    單片機RTC的定義及功能

    你是否聽說過rtc,但是不知道rtc是什么。其實rtc就在我們身邊,周圍的電子產(chǎn)品中或許都安裝了rtc,它可以提供時間
    的頭像 發(fā)表于 08-15 11:48 ?1.4w次閱讀

    基于STM32單片機RTC實時時鐘使用庫文件設(shè)計

    基于STM32單片機RTC實時時鐘使用庫文件設(shè)計源代碼
    發(fā)表于 04-26 14:28 ?5次下載