你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32F407通过机智云获取NTP网络时间

[复制链接]
STMCU小助手 发布时间:2022-5-15 17:11
1、什么是NTP
4 L, x) ^; @3 E* F9 L" ?/ g# N0 E4 ONTP 是网络时间协议(Network Time Protocol),他用来同步网络中各个计算机时间的协议。在机智云串口协议中,支持获取 NTP 网络同步时间的功能。3 T9 h7 e$ ~) [3 \

1 d0 N- q$ `' V; O4 S* f2、查找gizwitsGetNTP函数
( I+ ^7 m  D4 ]" T$ Z8 dNTP 网络时间请求 API 函数位置在 gizwits_protocol.c 文件中,如图所示:! c' t: f' h: t* ~
' ^7 a" W9 ~  O' d
WSSEK3%]_2P(03RL$I_Y8[9.png ) w9 ~: a; R) m- C
5 w1 D6 I. q) X
3、代码修改

& f, p* ^( h! J6 n. W我们直接拷贝《第四步》移植协议时创建的点亮LED的代码工程,在这基础上进行修改即可。; Y" q$ N/ X( K. }5 e6 _
' E2 v  D% s$ W2 n
当模组在成功接入网络后,它会返回 wifi 状态事件,我们利用 wifi 状态事件去启动 NTP网络时间的请求,获取具体事件位置在 gizwits_procuct.c 文件 gizwitsEventProcess()函数,如下图所示:: v0 V' }5 ]4 @/ U/ `. X
1 c3 u! t( m* J) A
P50{3YFJHRZM~4$DNONU0OH.png
, f% T, K  r5 }+ Y/ U1 P( X: @) M( W6 w; s
首先在 main.c文件中,定义一个 wifi_sta 变量,用来记录 wifi 连接状态,当模组连上机智云的服务器时,会返回WIFI_CON_M2M 的事件,断开时返回WIFI_DISCON_M2M,所以我们就在这两个地方添加标志位并且要引入外部变量,否则会报错,如下图所示:
! L; t2 N+ ~9 f. w  O8 l) y
+ k- s$ b, K& A! s9 V) O }PY}GICV71T%NJ]2KXY6KRJ.png 3 Z& Q& @! F/ n

; G. H& G, Y! d. M- w1 \连接成功后,wifi_sta变量标志就会为1,接着我们就要在userHandle 函数内数据采集逻辑(我的userHandle 函数保留在main.c内),代码如下:
7 |7 J3 M- c) M; F- d
6 I  |% ]& ?* O) I0 D& B. m8 J8 U, W ZPBB$KADFND3$(KHC5_DWMC.png 1 W7 E6 g0 ]& h; D  M5 u3 @
0 l& z0 R0 D9 n! ^! a
验证结果如图! S! Y* f5 a) D9 g, s
L}HTEO3)AZ9W9]UG}T%X)[G.png
/ b$ I$ o* Y2 y8 T: g5 ^3 p/ ?2 e& F5 B9 c4 g- {0 E3 l/ ?' C

& g. S# B/ L$ X( c% R) z% ]" m2 j2 n- g! a4 L

$ Y0 G, I; }) d, E
收藏 评论0 发布时间:2022-5-15 17:11

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版