使用STM32与ESP8266模块获取网络时间
1.相关的AT指令
AT //查询模块是否正常工作
AT+RST //模块复位
AT+RESTORE //恢复出厂设置
AT+CWMODE=1 //设置WiFi模块的模式
AT+CIPMUX=0 //设置模块为单路连接模式
AT+CWJAP="WIFI名称","密码" //连接网络
AT+CIPSTART="TCP","192.168.666",80//连接TCP服务器,192.168.0.102是服务器IP,8080是服务器端口。
AT+CIPSTART="TCP","quan.suning.com",80 //或者 AT+CIPSTART="TCP","175.6.49.231",80
AT+CIPMODE=1 //开启透传模式
AT+CIPSEND //开始发送数据
+++ //退出透传模式
2.建立指令集
0:AT
1:AT+RST
2:AT+CWMODE=1
3:AT+CIPMUX=0
4:AT+CWJAP="你的WiFi名称","你的WiFi密码"
5:AT+CIPMODE=1
6:AT+CIPSTART="TCP","api.pinduoduo.com",80
7:AT+CIPSEND
8:GET http://api.pinduoduo.com/api/server/_stm
9:+++
3.硬件准备
STM32选用核心板F103RCT6,然后再加一个ESP8266 WiFi模块(自带USB-TTL模块),开发板与wifi模块需要连线,3.3v-3v,GND-G,PA2-RX,PA3-TX。
整个系统需要使用两次串口通信,第一次是PC与开发板通信(RXD-PA9,TXD-PA10),作用是当开发板与wifi模块开始配置是,逐步向PC打印出配置信息,并且将最终解析出的网络时间数据打印在串口助手上。第二次是开发板与wifi模块通信(PA2-RX,PA3-TX),作用是开发板发送AT指令,检查返回信息,并将获取的网络时间信息存储在数组中。
4.JSON数据解析
下图的数据代表的是自1970年1月1日起累计经过的毫秒数,如果只取数字的前10位,即累计秒数,最终换算为实时时间。
5.参考文章
【STM32训练—WiFi模块】第一篇、STM32驱动ESP8266WiFi模块获取网络时间_esp8266 stm32-CSDN博客
WIFI模块(esp-01s)获取网络时间代码实现_esp01s获取时间-CSDN博客wifi模块无法识别AT指令,需要刷AT固件
NodeMCU模组之AT命令调试_nodemcu 无法退出透传-CSDN博客
WIFI模块(esp-01s)获取网络时间代码实现_esp01s获取时间-CSDN博客
解析JSON数据
解析JSON数据 cJSON的使用——下载、打包与解析_cjson下载-CSDN博客
stm32 数据包解析_Keil环境下STM32工程加入cJSON-CSDN博客
作者:美人就该吃荔枝