女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

3天內不再提示

ESP8266調用NTP服務器進行時間校準

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2023-05-04 16:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、背景知識

【1】什么是NTP服務器?

NTP是網絡時間協議(Network Time Protocol,簡稱NTP),是一種用于同步計算機時間的協議。NTP服務器指的是提供NTP服務的計算機或設備。NTP服務器的主要功能是保證網絡上的所有設備的時間同步,以確保各個設備相互之間的時間協調一致。NTP服務器通常連接到具有高度精確時間源的設備,例如:GPS接收器或原子鐘,以確保提供準確如一的時間。網絡上的計算機可以通過連接到NTP服務器來同步其時間,并確保它們在同一時刻進行操作。

目前有許多可以使用的NTP服務器,以下是一些常用的NTP服務器列表:

1. cn.ntp.org.cn
2. ntp.sjtu.edu.cn
3. ntp.linux.org.cn
4. time.nist.gov.cn
5. ntp.aliyun.com
6. ntp.api.bz
7. ntp1.aliyun.com
8. time1.cloud.tencent.com
9. pool.ntp.org.cn

【2】RTC實時時鐘是什么?

RTC (Real-Time Clock)實時時鐘,是指一種專門用于記憶日期、時間的計時芯片或模塊。一般包括一個時鐘芯片、一塊石英晶體、一塊溫度補償電路、電源管理電路等組成。RTC可以精確地記錄日期和時間,即使是在斷電等異常情況下,也能保持記錄的時間長達數年。常常用于嵌入式系統、數據采集設備等領域,是一種至關重要的設備。在某些系統應用中,RTC也會成為其他設備的時鐘源,如單片機微控制器單位等。

RTC的時間精度通常為ppm 級別,即每百萬分之一,能夠滿足大多數實時應用場景的要求。為了提高RTC的穩定度和精度,許多RTC都帶有自動校正功能,可以自動從外部時鐘源或NTP服務器中獲取準確的時間,并進行校正。同時,許多RTC還會集成電源管理功能,支持低功耗模式以延長電池壽命。

二、ESP8266獲取網絡時間

要通過ESP8266聯網并獲取網絡時間,需要執行以下步驟:

  1. STM32F103ZET6上配置UART串口以與ESP8266進行通信
  2. 使用AT指令將ESP8266連接到Wi-Fi網絡。可以使用以下指令:
AT+CWJAP="SSID","password"

其中,替換 "SSID" 為自己的Wi-Fi網絡名稱,"password" 是Wi-Fi密碼。

  1. 使用AT指令連接到NTP服務器并獲取時間。您可以使用以下指令:
AT+CIPSNTPCFG=0,1,"pool.ntp.org"
AT+CIPSNTPTIME?

這將連接到ntp服務器并檢索當前的UTC時間。

  1. 將ESP8266返回的UTC時間轉換為本地時間。您需要知道您所在的時區,并對UTC進行適當的調整。
  2. 將本地時間設置為STM32F103ZET6上的RTC實時時鐘。

下面是一個示例代碼

#include 
#include "stm32f10x.h"
?
// UART配置
void uart_init() {
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
?
  USART_InitTypeDef USART_InitStructure;
  USART_InitStructure.USART_BaudRate = 115200;
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  USART_InitStructure.USART_StopBits = USART_StopBits_1;
  USART_InitStructure.USART_Parity = USART_Parity_No;
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  USART_Init(USART1, &USART_InitStructure);
?
  USART_Cmd(USART1, ENABLE);
}
?
// 發送AT指令并等待響應
int send_at_command(char* command, char* response, uint32_t timeout) {
 // 發送命令
 USART_SendData(USART1, (uint8_t*)command, strlen(command));
 
 // 等待響應
 uint32_t start_time = HAL_GetTick();
 while ((HAL_GetTick() - start_time) < timeout) {
? ? ?if (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) != RESET) {
? ? ? ?char c = USART_ReceiveData(USART1);
? ? ? ?
? ? ? ?// 檢查是否收到了預期的響應
? ? ? ?if (strstr(response, c) != NULL) {
? ? ? ? ?return 0; // 成功
? ? ?  }
? ?  }
?  }
? ?
? ?return -1; // 超時或沒有收到預期的響應
?}
??
?// 連接ESP8266到Wi-Fi
?void connect_to_wifi() {
? ?char command[50];
? ?char response[100];
? ?
? ?// 設置Wi-Fi SSID和密碼
? ?sprintf(command, "AT+CWJAP="%s","%s"rn", "YourSSID", "YourPassword");
? ?send_at_command(command, "OK", 5000);
?}
??
?// 連接到NTP服務器并獲取時間
?int get_ntp_time(uint32_t* time) {
? ?char response[100];
? ?
? ?// 配置SNTP客戶端
? ?send_at_command("AT+CIPSNTPCFG=0,1,"pool.ntp.org"rn", "OK", 5000);
? ?
? ?// 獲取時間
? ?send_at_command("AT+CIPSNTPTIME?rn", response, 5000);
? ?
? ?// 解析響應并提取時間戳
? ?char* token = strtok(response, ",");
? ?uint32_t timestamp = atoi(token);
? ?*time = timestamp - 2208988800UL; // 轉換為Unix時間戳
? ?
? ?return 0;
?}
??
?// 將時間設置到RTC
?void set_rtc_time(uint32_t time) {
? ?// 啟用PWR和BKP外設時鐘
? ?RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
? ?
? ?// 解鎖備份寄存器區域
? ?PWR_BackupAccessCmd(ENABLE);
? ?
? ?// 配置RTC
? ?RCC_RTCCLKConfig(RCC_RTCCLKSource_HSE_Div128); // RTC時鐘源為HSE/128
? ?RCC_RTCCLKCmd(ENABLE); // 啟用RTC時鐘
? ?
? ?RTC_InitTypeDef RTC_InitStructure;
? ?// 配置RTC時鐘 
? ? ?RTC_InitStructure.RTC_HourFormat = RTC_HourFormat_24; RTC_InitStructure.RTC_AsynchPrediv = 127; 
? ? ?RTC_InitStructure.RTC_SynchPrediv = 255; 
? ? ?RTC_Init(&RTC_InitStructure);
??
?// 設置RTC時間 
? ? ?RTC_TimeTypeDef RTC_TimeStruct; 
? ? ?RTC_DateTypeDef RTC_DateStruct;
??
?// 將Unix時間戳轉換為RTC時間和日期 
? ?uint32_t days = time / 86400; 
? ? ?uint32_t seconds = time % 86400; 
? ? ?uint32_t hours = seconds / 3600; 
? ? ?uint32_t minutes = (seconds % 3600) / 60; 
? ? ?uint32_t secs = (seconds % 3600) % 60; 
? ? ?uint32_t year = 1970; 
? ? ?uint32_t month = 1; 
? ? ?while (days > 365) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { days -= 366; } else { days -= 365; } year++; } 
  while (days > 0) { if (month == 2) 
   { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { if (days > 29) { days -= 29; } else { break; } } else { if (days > 28) { days -= 28; } else { break; } } } else if (month == 4 || month == 6 || month == 9 || month == 11) { if (days > 30) { days -= 30; } else { break; } } else { if (days > 31) { days -= 31; } else { break; } } month++; if (month > 12) { month = 1; year++; } }
?
RTC_TimeStruct.RTC_Hours = hours; RTC_TimeStruct.RTC_Minutes = minutes; RTC_TimeStruct.RTC_Seconds = secs; RTC_DateStruct.RTC_Date = days; RTC_DateStruct.RTC_Month = month; RTC_DateStruct.RTC_Year = year - 2000;
?
// 設置RTC時間和日期 
  RTC_SetTime(RTC_Format_BIN, &RTC_TimeStruct); 
  RTC_SetDate(RTC_Format_BIN, &RTC_DateStruct); }
?
int main() 
{ 
  // 初始化UART串口 
  uart_init();
?
  // 連接ESP8266到Wi-Fi
  connect_to_wifi();
?
// 獲取NTP時間 
  uint32_t ntp_time; get_ntp_time(&ntp_time);
?
// 將時間設置到
  RTC set_rtc_time(ntp_time);
?
while (1) { // 做其他的事情... } }
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6067

    文章

    44952

    瀏覽量

    648647
  • 接收器
    +關注

    關注

    15

    文章

    2565

    瀏覽量

    73605
  • 服務器
    +關注

    關注

    13

    文章

    9744

    瀏覽量

    87523
  • NTP
    NTP
    +關注

    關注

    1

    文章

    221

    瀏覽量

    14398
  • ESP8266
    +關注

    關注

    51

    文章

    965

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用EsP8266(NodeMCU)連接阿里云服務器

    ??使用EsP8266(NodeMCU)連接阿里云服務器,并在服務器控制臺點亮板載LED燈,進行數據上傳和下傳的測試。創建阿里云產品功能定義:先選擇編輯草稿,才可以看到最下面的布爾值那
    發表于 11-24 06:23

    求解關于AT ESP8266 無法實現NTP時間同步的問題?

    有影響。另外PING3個NTP服務器都能夠正常通信,應該說通信已經建立,分析應該是AT SOCKET部分問題,但是目前水平有限,折騰多半天,沒有任何進展,項目時間緊,希望高手們能多多幫助。謝謝!
    發表于 03-15 14:36

    有人知道使用GPS/RTC模塊作為時間源的ESP8266 NTP服務器嗎?

    有人知道使用 GPS/RTC 模塊作為時間源的 ESP8266 NTP 服務器嗎?我有一個 WiFi 項目,我想在其中聯網很多 ESP 板。
    發表于 02-24 07:48

    如何讓ESP8266在精確的時間完成特定的任務?

    功耗降至最低的方法:有人可以建議我最好的方法嗎? 輪詢 NTP 服務聽起來像是在浪費時間和精力,所以我在想這樣的事情: 我的程序第一次在 ESP8266 上運
    發表于 05-31 07:12

    如何使用Lua腳本語言進行ESP8266和TCP服務器多連接

    本文檔的主要內容詳細介紹的是如何使用Lua腳本語言進行ESP8266和TCP服務器多連接。
    發表于 06-10 17:48 ?2次下載
    如何使用Lua腳本語言<b class='flag-5'>進行</b><b class='flag-5'>ESP8266</b>和TCP<b class='flag-5'>服務器</b>多連接

    Esp8266(NodeMCU)連接阿里云服務器

    ??使用EsP8266(NodeMCU)連接阿里云服務器,并在服務器控制臺點亮板載LED燈,進行數據上傳和下傳的測試。創建阿里云產品功能定義:先選擇編輯草稿,才可以看到最下面的布爾值那
    發表于 11-16 10:21 ?18次下載
    <b class='flag-5'>Esp8266</b>(NodeMCU)連接阿里云<b class='flag-5'>服務器</b>

    調用Lua新建的WEB服務器 操作Nodemcu esp8266 控制繼電器實現物聯網

    調用Lua新建的WEB服務器 操作Nodemcu esp8266 控制繼電器實現物聯網
    發表于 12-08 16:51 ?13次下載
    <b class='flag-5'>調用</b>Lua新建的WEB<b class='flag-5'>服務器</b>  操作Nodemcu <b class='flag-5'>esp8266</b> 控制繼電器實現物聯網

    最簡單DIY基于ESP8266的物聯網智能小車②(webserver服務器網頁高級遙控版)

    ESP8266ESP32物聯網智能小車開發系列文章目錄第一篇:最簡單DIY基于ESP8266的物聯網智能小車①(webserver服務器網頁簡單遙控版)第二篇:最簡單DIY基于
    發表于 12-29 18:58 ?0次下載
    最簡單DIY基于<b class='flag-5'>ESP8266</b>的物聯網智能小車②(webserver<b class='flag-5'>服務器</b>網頁高級遙控版)

    如何利用ESP8266實現智能手表的設計

    這是一款簡單的ESP8266手表,具有多個位置的 WiFi 連接、NTP 時間服務器同步和比較功能。
    的頭像 發表于 04-01 15:29 ?3911次閱讀
    如何利用<b class='flag-5'>ESP8266</b>實現智能手表的設計

    如何使用ESP8266制作可配置的Web服務器

    在這個項目中,我們首先研究如何在 Arduino IDE 中安裝 ESP8266 插件,然后使用 ESP8266 制作可配置的 Web 服務器
    的頭像 發表于 05-10 15:18 ?1.4w次閱讀
    如何使用<b class='flag-5'>ESP8266</b>制作可配置的Web<b class='flag-5'>服務器</b>

    使用ESP8266NTP服務器獲取時間并在OLED顯示上顯示

    在本教程中,我們將使用 ESP8266 NodeMCU 從 NTP 服務器獲取當前時間和日期,并將其顯示在 OLED 顯示屏上。
    的頭像 發表于 09-01 16:09 ?2w次閱讀
    使用<b class='flag-5'>ESP8266</b>從<b class='flag-5'>NTP</b><b class='flag-5'>服務器</b>獲取<b class='flag-5'>時間</b>并在OLED顯示<b class='flag-5'>器</b>上顯示

    基于ESP8266NTP時鐘

    電子發燒友網站提供《基于ESP8266NTP時鐘.zip》資料免費下載
    發表于 11-11 10:06 ?5次下載
    基于<b class='flag-5'>ESP8266</b>的<b class='flag-5'>NTP</b>時鐘

    NodeMCU ESP8266啟用AJAX的Web服務器

    電子發燒友網站提供《NodeMCU ESP8266啟用AJAX的Web服務器.zip》資料免費下載
    發表于 11-22 09:37 ?1次下載
    NodeMCU <b class='flag-5'>ESP8266</b>啟用AJAX的Web<b class='flag-5'>服務器</b>

    基于ESP8266的Web服務器

    項目將告訴你如何在不使用 Arduino 的情況下使用 ESP8266 構建 Web 服務器
    發表于 12-07 11:02 ?1次下載

    使用ESP8266 OLED和Visuino從NIST TIME服務器獲取日期和時間

    電子發燒友網站提供《使用ESP8266 OLED和Visuino從NIST TIME服務器獲取日期和時間.zip》資料免費下載
    發表于 06-28 09:55 ?0次下載
    使用<b class='flag-5'>ESP8266</b> OLED和Visuino從NIST TIME<b class='flag-5'>服務器</b>獲取日期和<b class='flag-5'>時間</b>
    主站蜘蛛池模板: 千阳县| 五河县| 高碑店市| 旬阳县| 大安市| 高陵县| 莎车县| 政和县| 弥渡县| 桓台县| 崇义县| 辛集市| 灵丘县| 阿荣旗| 常熟市| 华安县| 庆元县| 永川市| 德庆县| 南丹县| 长寿区| 闽侯县| 长乐市| 香港 | 太湖县| 泰宁县| 铁岭县| 固阳县| 临猗县| 嘉峪关市| 汉阴县| 万安县| 延吉市| 阜新市| 灵石县| 白朗县| 株洲县| 栖霞市| 饶阳县| 施秉县| 弋阳县|