1、什么是NTP NTP 是网络时间协议(Network Time Protocol),他用来同步网络中各个计算机时间的协议。在机智云串口协议中,支持获取 NTP 网络同步时间的功能。 2 Q; y. X" l$ ?5 a9 K9 S 2、查找gizwitsGetNTP函数8 {6 G P0 k) Q% H% ~. t NTP 网络时间请求 API 函数位置在 gizwits_protocol.c 文件中,如图所示: 3、代码修改. 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 首先在 main.c文件中,定义一个 wifi_sta 变量,用来记录 wifi 连接状态,当模组连上机智云的服务器时,会返回WIFI_CON_M2M 的事件,断开时返回WIFI_DISCON_M2M,所以我们就在这两个地方添加标志位并且要引入外部变量,否则会报错,如下图所示:; H) A2 e2 n1 ?; z- C U6 ` $ Y) S; {* n: b4 x 连接成功后,wifi_sta变量标志就会为1,接着我们就要在userHandle 函数内数据采集逻辑(我的userHandle 函数保留在main.c内),代码如下:1 e( \" [& C4 I( m7 R6 E b: E( R / [& D7 R) k0 T% @$ q7 M 验证结果如图 : I2 i8 _9 B3 W( K# ~7 @ . ]/ ~+ O( I; n4 }# c; [ 3 `6 [$ J; J5 N2 K4 p |
STM32固件库分享,超全系列整理
【中文文档】AN3965_STM32F40x和STM32F41x基于串口的IAP
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
STM32F4中文用户手册
基于STM32F407的FreeRTOS阶段性的总结(13)
STM32F400、STM32F402 Cortex-M4超值单片机
基于STM32F407的FreeRTOS获取各任务运行时间及占用情况(4)
基于STM32F407的FreeRTOS任务的挂起与恢复(3)
基于STM32F407的FreeRTOS任务的创建与删除经验分享(2)
基于STM32F407的FreeRTOS环境搭建经验分享(1)