做flash音乐网站的开题报告,小程序登录授权,上海易站网站建设,苏州知名高端网站建设需求描述
测试AT指令是否能够正常控制ESP32的wifi#xff0c;比如重启、读取设备信息等。
思路#xff1a;
stm32通过串口usart2向ESP32发布命令。ESP32通过串口1返回信息。
配置#xff1a;
第一步#xff1a;对ESP32芯片烧录可以读取stm32命令的固件#xff08;fac…需求描述
测试AT指令是否能够正常控制ESP32的wifi比如重启、读取设备信息等。
思路
stm32通过串口usart2向ESP32发布命令。ESP32通过串口1返回信息。
配置
第一步对ESP32芯片烧录可以读取stm32命令的固件factory_MINI-1.bin。
第二步打开cubeMAX-配置usart1和usart2在原理图中STM32通过usart2和ESP32连接。
第三步新建Interface文件-》新建esp.c和esp.h文件。
cubeMAX配置图 keil配置引入esp.c文件path中添加.h路径
代码书写流程
1》usart.h文件-引入#includestdio.h
2》usart.c文件重写printf代码
int fputc(int ch, FILE *file)
{HAL_UART_Transmit(huart1, (uint8_t *)ch, 1, 1000);return ch;
}
3》Interface文件下的esp32.h文件
#ifndef __ESP32_H__
#define __ESP32_H__#include usart.h
#include string.h
void ESP32_Init(void);//发送命令
void ESP32_SendCmd(uint8_t * cmd,uint16_t cmdLen);//读取响应
void ESP32_ReadResp(uint8_t buff[],uint16_t *len);#endif /* __ESP32_H__ */4》Interface文件下的esp32.c文件
#include esp32.h//定义全局变量接收响应缓冲区和长度
uint8_t respBuff[1024];
uint16_t resplen;void ESP32_Init(void)
{//1 初始化串口2MX_USART2_UART_Init();// 2 发送AT指令 复位ESP32uint8_t *cmd ATRST0\r\n;ESP32_SendCmd(cmd,strlen((char *)cmd));//3 引入延时确保重启成功HAL_Delay(2000);
}//发送命令
void ESP32_SendCmd(uint8_t * cmd,uint16_t cmdLen)
{// 先清空memset(respBuff,0,1024);//直接通过串口2发送命令HAL_UART_Transmit(huart2,cmd,cmdLen,1000);// 读取响应do{ESP32_ReadResp(respBuff,resplen);}while(strstr((char *)respBuff,OK) NULL);//将响应打印输出printf(%.*s\n,resplen,respBuff);
}//读取响应
void ESP32_ReadResp(uint8_t buff[],uint16_t *len)
{//串口2 接收变长数据HAL_UARTEx_ReceiveToIdle(huart2,buff,1024,len,1000);;
}
5》main.c文件
添加
#include esp32.h
int mainvoid)大括号下添加 printf(测试AT指令...\n);ESP32_Init();printf(esp32初始化完成\n);uint8_t *cmd AT\r\n;ESP32_SendCmd(cmd,strlen((char *)cmd));cmd ATGMR\r\n;ESP32_SendCmd(cmd,strlen((char *)cmd));效果图