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

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

[复制链接]
STMCU小助手 发布时间:2022-5-15 17:11
1、什么是NTP3 i1 @+ p7 I7 X, y; k; ?5 g
NTP 是网络时间协议(Network Time Protocol),他用来同步网络中各个计算机时间的协议。在机智云串口协议中,支持获取 NTP 网络同步时间的功能。2 c! C* P0 w8 j0 q3 U( |
# [0 ?5 n$ E7 \8 t/ L/ v! i) B
2、查找gizwitsGetNTP函数! j$ l& w) M! U- Z& u( a
NTP 网络时间请求 API 函数位置在 gizwits_protocol.c 文件中,如图所示:
: L- N' _# U: }! s2 K6 F, i. I7 P4 M# N9 p3 X& E8 B
WSSEK3%]_2P(03RL$I_Y8[9.png + x8 O# ~0 L, z' M' k. t

% K) x$ t' E* w5 J6 ], R# m3、代码修改
, y0 R) @! e* x! D- Y+ ?# Y$ C
我们直接拷贝《第四步》移植协议时创建的点亮LED的代码工程,在这基础上进行修改即可。
3 }# q0 s) U/ B- t4 v' D% R2 a
! W. C* u8 ~5 }2 N当模组在成功接入网络后,它会返回 wifi 状态事件,我们利用 wifi 状态事件去启动 NTP网络时间的请求,获取具体事件位置在 gizwits_procuct.c 文件 gizwitsEventProcess()函数,如下图所示:
! L0 @6 d8 `* z& n) h" Y9 o( \( _3 b, O
P50{3YFJHRZM~4$DNONU0OH.png
3 y5 f: k- ~4 Y6 L6 m
( ~3 w2 x& o1 @3 K首先在 main.c文件中,定义一个 wifi_sta 变量,用来记录 wifi 连接状态,当模组连上机智云的服务器时,会返回WIFI_CON_M2M 的事件,断开时返回WIFI_DISCON_M2M,所以我们就在这两个地方添加标志位并且要引入外部变量,否则会报错,如下图所示:# f1 e9 T8 l2 T. {
1 C% G' E8 h* {# X( X+ P
}PY}GICV71T%NJ]2KXY6KRJ.png
7 N) q: F4 z: O6 w. d
; \$ _" l6 {) L/ y! A  n" O连接成功后,wifi_sta变量标志就会为1,接着我们就要在userHandle 函数内数据采集逻辑(我的userHandle 函数保留在main.c内),代码如下:! N0 h! ^3 w0 I/ U+ @9 [# e# i

' D$ q% n+ d1 Q1 ]$ G" l6 N ZPBB$KADFND3$(KHC5_DWMC.png 9 L' j0 ?5 \1 r7 e* P& m, E' f# ?

1 S) I8 Q7 J- P验证结果如图2 L! _/ M6 Z0 W
L}HTEO3)AZ9W9]UG}T%X)[G.png
2 O. I/ k3 j8 u! |$ D2 x7 p, q1 V+ ^6 C$ S' l5 _

: h$ {2 l! D+ w6 b$ a/ w0 I1 g+ r) y' g
3 S& K$ m, {- L$ Y1 H; ~& I
收藏 评论0 发布时间:2022-5-15 17:11

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版