
https://bbs.elecfans.com/jishu_2487602_1_1.html
前一篇帖子中我已经实现了完整的RA4M2配合ESP8266获取城市天气预报信息数据,可以完美结帖了,本期帖子我采用另外的一种方式来实现万能AT指令的数据解析,主要使用两个串口,一个用来调试打印输出,另一个用来解析ESP8266 WIFI模块,(任意类型的WIFI和BLE、Bluetooth),只要是支持AT指令的WIFI模块和蓝牙模块,都可以使用我这个万能AT指令破解工具,来进行任意AT指令的数据测试和回传!!!!!!万能的神器yyds
主要用到的硬件平台就是任意一个MCU开发平台,可以是NXP,Renesas,STM32,英飞凌,国产单片机都可以,只要具备两个串口即可无缝使用我的破解工具。
软件平台:任意类型的串口调试助手,我这里使用丁丁串口助手,大家使用英文版的串口助手也行。
工作原理:就是用串口来进行透传,把串口助手上发送的AT指令通过调试串口接收来发送给ESP8266模块的串口,然后ESP8266会把返回的AT指令响应报文回传给串口调试助手,这样就可以通过串口调试助手,测试所以类型的AT指令了,同时,基于这个原理,我展示了用另外一种方法来获取天气预报信息数据,并在窗口调试助手上显示出来。
打开原理图,用到的串口如下图所示:

这个连接ESP8266或者任意其它的蓝牙模块

这个是板载的USB转232串口,用来打印调试,接收串口助手发送的数据。
具体的穿件串口工程我就不赘述了,不重复造轮子,直接使用我之前建立的工程ESP8266




以上是两个串口配置

串口的核心函数代码如下:


主函数代码如下


#include "hal_data.h"
#include <stdio.h>
#include "usart9.h"
#include "esp8266.h"
FSP_CPP_HEADER
void R_BSP_WarmStart(bsp_warm_start_event_t event);
FSP_CPP_FOOTER
/*******************************************************************************************************************//**
-
main() is generated by the RA Configuration editor and is used to generate threads if an RTOS is used. This function
-
is called by main() when no RTOS is used.
*********************************************************************************************************************/
void hal_entry(void)
{
/ TODO: add your own code here */
UART9_Init();
UART0_Init();
while(1)
{
if(user_uart_wait_receive() == 1)
{
WIFI_Send_String(U1_RxBuff);
user_uart_clear();
}
if(ESP8266_WaitRecive() == 1)
{
uart9_Send_String(esp8266_buf);
ESP8266_Clear();
}
}
烧录RA4M2板子

打开串口助手

我们按照如下顺序发送AT指令,把获取心知天气预报的流程走一遍
1。AT+RST

回复一些ESP8266复位后的固件版本信息。
2。AT

返回OK
3。AT+CWMODE=1

返回OK
4。AT+CWJAP="CMCC-c2H2","62x9wttb"

CMCC-c2H2是我的wifi名称
62x9wttb是我的wifi密码
你们需要实际替换
5。AT+CIPSTART="TCP","116.62.81.138",80
通过TCP指令连接到心知天气的IP地址域名,怎么获取域名我上篇帖子有讲,自己去看。

返回OK
6。AT+CIPMODE=1

返回OK
7。AT+CIPSEND

回复了一个OK后,又回复了一个>
这个符号很重要,没有就是失败,需要重启再来
8。
GET https://api.seniverse.com/v3/weather/now.json?key=API_KEY&location=chengdu&language=zh-Hans&unit=c

我们获取成都的天气信息。
接下来试着看下深圳,只需要把chengdu改成shenzhen,用拼音替换即可

查看惠州天气,换成huizhou


就是从1~9这个流程跑一遍,就能获取到任意城市的天气信息了,是不是很方便!!!
这个操作能测试所有的AT指令,只需用来单片机的两个串口功能即可,堪称AT指令测试万能神器,当我们的项目中更换WIFI模块,或者蓝牙模块时,能方便我们测试对应模块的功能有没有问题!!!!