精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

單片機的RTC獲取網絡時間

撞上電子 ? 2023-12-23 08:00 ? 次閱讀

理解網絡同步校準RTC的原理需要考慮NTP、SNTP、RTC這三個關鍵組件的作用和交互。下面詳細解釋這個過程:

1. NTP(Network Time Protocol):

協議目的:NTP是用于同步計算機和設備時鐘的協議。它通過在網絡上與時間服務器通信,獲取準確的時間信息工作原理:NTP使用一種分層的客戶端-服務器體系結構。客戶端向服務器發起請求,服務器回應包含其本地時間的響應。NTP客戶端使用這些響應來調整本地時鐘。

2. SNTP(Simple Network Time Protocol):

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

3. RTC(Real-Time Clock):

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

4. 示例中的步驟解釋:

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

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

SNTP回調函數:注冊一個回調函數,該函數在SNTP成功獲取到時間時被調用。在這個回調函數中,將獲取到的UNIX時間戳轉換為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);}

等待同步:在主循環中,等待SNTP成功獲取時間。這確保在主代碼開始執行之前,RTC已經校準。

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

主循環:在主循環中,你可以執行其他與應用相關的任務。此時,RTC已經被成功校準。

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


5. 注意事項:

定期同步:SNTP模塊會定期向NTP服務器發起請求,以保持本地時鐘的準確性。NTP服務器選擇: 在實際應用中,應該選擇可靠性高且準確性好的NTP服務器。這可能需要在特定的網絡環境中選擇合適的服務器。

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

    關注

    6032

    文章

    44514

    瀏覽量

    632953
  • RTC
    RTC
    +關注

    關注

    2

    文章

    527

    瀏覽量

    66309
  • 網絡同步器
    +關注

    關注

    0

    文章

    6

    瀏覽量

    1558
收藏 人收藏

    評論

    相關推薦

    時間同步獲取時間

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

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

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

    如何利用WIFI模塊獲取NTP服務器中的網絡時間

    There are different ways to be brave.勇敢有不同種方式。一、需求在單片機上實現RTC的驅動,利用WIFI模塊獲取NTP服務器中的網絡
    發表于 01-21 07:32

    單片機自學網單片機網絡教程

    單片機自學網單片機網絡教程
    發表于 03-21 20:33 ?221次下載

    RTC單片機例程

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

    STM32單片機RTC模塊的分析

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

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

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

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

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

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

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

    關于stm8l05x系列單片機rtc初始化問題

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

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

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

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

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

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

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

    單片機RTC的定義及功能

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

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

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