stm32与ESP32-C3通过串口连接

发布于:2025-07-12 ⋅ 阅读:(42) ⋅ 点赞:(0)

        ESP32-C3 是一款安全稳定、低功耗、低成本的物联网芯片,搭载 RISC-V 32位单核处理器,支持2.4 GHz Wi-FiBluetooth 5(LE)。

        ESP32-C3本身就可以作为一个单片机使用,但是我们这里只是把ESP32-C3作为一个Wi-Fi/蓝牙模块使用。STM32与ESP32-C3使用串口进行通讯。STM32可以给ESP32-C3发送命令,这种命令叫ESP-AT指令。

        首先通过pc串口ESP32中烧写ESP-AT固件,ESP-AT 是基于 ESP-IDF 实现的软件工程。

        它使 ESP32-C3 模组作为从机,MCU 作为主机。MCU 发送 AT 命令给 ESP32-C3 模组,控制 ESP32-C3 模组执行不同的操作,并接收 ESP32-C3 模组返回的 AT 响应。

        ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Bluetooth LE 命令、Bluetooth 命令、MQTT 命令、HTTP 命令、Ethernet 命令等。同样,用户也可以基于 ESP-AT 工程,自行开发更多的 AT 命令,以实现更多的功能。

        AT 命令以 “AT” 开始,代表 Attention,以‘回车+换行’(\r\n)为结尾。输入的每条命令都会返回 OK 或 ERROR 的响应,表示当前命令的最终执行结果。注意,所有 AT 命令均为串行执行,每次只能执行一条命令。因此,在使用 AT 命令时,应等待上一条命令执行完毕后,再发送下一条命令。如果上一条命令未执行完毕,又发送了新的命令,则会返回 busy p..

1. WIFi案例1:测试AT指令

需求:测试AT指令是否能够正常控制ESP32的wifi,比如重启、读取设备信息等。

1. 串口1实现pritf重定向,用于串口调试助手

usart.h中添加函数声明

    /* USER CODE BEGIN Prototypes */
#include "stdio.h"
    int fputc(int ch, FILE *f);
    /* USER CODE END Prototypes */

usart.c中添加函数

/* USER CODE BEGIN 1 */
int fputc(int ch, FILE *f)
{
    /* 发送一个字节数据到串口DEBUG_USART */
    HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 1000);
    return (ch);
}
/* USER CODE END 1 */

2. 关于esp32的发送读取接口,与mcu通过串口2连接

esp32.h

#ifndef __ESP32_H
#define __ESP32_H

#include "usart.h"
#include "string.h"
#include "stdio.h"

void ESP32_Init(void);    
void ESP32_Send_CMD(uint8_t *cmd, uint16_t cmdLength);
void ESP32_ReadResponse(uint8_t responeBuff[], uint16_t size);

esp32.c

#include "esp32.h"
uint8_t rBuff[1000] = {0};
/**
 * @description: 初始化ESP32
 */
void ESP32_Init(void)
{
    /* 1. 初始化串口2(通过

网站公告

今日签到

点亮在社区的每一天
去签到