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

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

[复制链接]
STMCU小助手 发布时间:2022-5-15 17:11
1、什么是NTP
& R& j' M* Z4 ]: N+ `NTP 是网络时间协议(Network Time Protocol),他用来同步网络中各个计算机时间的协议。在机智云串口协议中,支持获取 NTP 网络同步时间的功能。
! v$ G3 e: b; J- l' L' a% o. R3 E2 Q; y. X" l$ ?5 a9 K9 S
2、查找gizwitsGetNTP函数8 {6 G  P0 k) Q% H% ~. t
NTP 网络时间请求 API 函数位置在 gizwits_protocol.c 文件中,如图所示:
1 Q: v. M. }  C. g5 p) S5 v
% r, t* s# |6 r WSSEK3%]_2P(03RL$I_Y8[9.png
1 ]" y3 C; v, P' N
, c+ g* d: Z( W" G; i* {0 v3、代码修改
. R1 E5 l( B. D4 G
我们直接拷贝《第四步》移植协议时创建的点亮LED的代码工程,在这基础上进行修改即可。# N+ X& B$ Q# X
& D- m# B) y( F
当模组在成功接入网络后,它会返回 wifi 状态事件,我们利用 wifi 状态事件去启动 NTP网络时间的请求,获取具体事件位置在 gizwits_procuct.c 文件 gizwitsEventProcess()函数,如下图所示:" ]% Q# A  Q" O4 R" E3 i
2 b9 d5 q, j5 d6 u( P; ?4 O
P50{3YFJHRZM~4$DNONU0OH.png / f) z" n/ ?. A+ Q. C. c

; r' ], `% R) X/ m: B7 B首先在 main.c文件中,定义一个 wifi_sta 变量,用来记录 wifi 连接状态,当模组连上机智云的服务器时,会返回WIFI_CON_M2M 的事件,断开时返回WIFI_DISCON_M2M,所以我们就在这两个地方添加标志位并且要引入外部变量,否则会报错,如下图所示:; H) A2 e2 n1 ?; z- C  U6 `

6 ^" C( B8 f5 H0 H: G) m# }: `+ P6 w }PY}GICV71T%NJ]2KXY6KRJ.png
6 [. t+ z2 t' a$ s; g; y5 b$ Y) S; {* n: b4 x
连接成功后,wifi_sta变量标志就会为1,接着我们就要在userHandle 函数内数据采集逻辑(我的userHandle 函数保留在main.c内),代码如下:1 e( \" [& C4 I( m7 R6 E  b: E( R

! J& a2 w" P# J7 L+ ^' ?, y% l ZPBB$KADFND3$(KHC5_DWMC.png # |- p9 E2 _' `( ]/ d9 D% Q
/ [& D7 R) k0 T% @$ q7 M
验证结果如图
* ^4 M. E( n- [3 ^8 z& ~ L}HTEO3)AZ9W9]UG}T%X)[G.png
6 J: Z8 O% s- B9 {
+ N% D8 T& `7 n9 e; x: I2 i8 _9 B3 W( K# ~7 @
. ]/ ~+ O( I; n4 }# c; [
3 `6 [$ J; J5 N2 K4 p
收藏 评论0 发布时间:2022-5-15 17:11

举报

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