1、什么是NTP NTP 是网络时间协议(Network Time Protocol),他用来同步网络中各个计算机时间的协议。在机智云串口协议中,支持获取 NTP 网络同步时间的功能。3 T9 h7 e$ ~) [3 \ 2、查找gizwitsGetNTP函数 NTP 网络时间请求 API 函数位置在 gizwits_protocol.c 文件中,如图所示:! c' t: f' h: t* ~ ' ^7 a" W9 ~ O' d 5 w1 D6 I. q) X 3、代码修改 我们直接拷贝《第四步》移植协议时创建的点亮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 1 P( X: @) M( W6 w; s 首先在 main.c文件中,定义一个 wifi_sta 变量,用来记录 wifi 连接状态,当模组连上机智云的服务器时,会返回WIFI_CON_M2M 的事件,断开时返回WIFI_DISCON_M2M,所以我们就在这两个地方添加标志位并且要引入外部变量,否则会报错,如下图所示: 连接成功后,wifi_sta变量标志就会为1,接着我们就要在userHandle 函数内数据采集逻辑(我的userHandle 函数保留在main.c内),代码如下: 0 l& z0 R0 D9 n! ^! a 验证结果如图! S! Y* f5 a) D9 g, s & F5 B9 c4 g- {0 E3 l/ ?' C ) z% ]" m2 j2 n- g! a4 L |
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)