NTP 是网络时间协议,将获取到的网络时间同步到本地,是本地时间与网络同步。
一般来说,STM32通过W5500从NTP服务器获取到之后,会存同步到DS1302时钟芯片中,再读取DS1302时间在应用中使用。
DS1302的时间设置和读取,可以参考 《STM32F10x读取DS1302的时间,通过USART显示在串口调试助手上》。
NTP协议是基于UDP基础上封装的协议,NTP报文格式 可以参考 《NTP报文格式》。
STM32驱动W5500,使用UDP来实现获取NTP网络时间的代码实现:NTP服务器IP选取 202.112.10.60,端口固定为123.
NTP.C实现代码:
#include "types.h"
#include "ntp.h"
#include "socket.h"
#include "w5500.h"
#include <string.h>
#include <stdio.h>
uint8 NTP_SERVER_IP[4] = {202, 112, 10, 60};
void func_analysis_ntp_back_msg(uint8* buf, uint16 idx, TSTAMP *ts