写出esp32与stm32进行通讯的代码
时间: 2024-12-13 20:17:38 浏览: 28
ESP32 和 STM32 进行通信通常会通过串口或USB-CAN等协议,这里我会给出一个简单的基于UART(通用异步接收/发送)的例子,假设ESP32作为主设备发送数据,STM32作为从设备接收:
```cpp
// ESP32 (主设备) - 使用WiFiManager库简化连接过程
#include <WiFi.h>
#include <SoftwareSerial.h>
SoftwareSerial espSerial(2, 3); // RX/TX引脚配置
void setup() {
Serial.begin(9600);
WiFi.begin("Your_SSID", "Your_PASSWORD");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
espSerial.begin(9600); // 设置串口波特率
}
void loop() {
if (espSerial.available()) { // 检查ESP32是否有数据
char data = espSerial.read(); // 读取字符
Serial.print("ESP32 sent: ");
Serial.write(data); // 发送到电脑串口
}
}
```
```c
// STM32 (从设备) - 配置并监听串口数据
#include <stm32f1xx_hal.h>
SoftwareSerial subSerial(USART1, USART1_RTS); // RX/TX引脚配置
void setup() {
HAL_UART_Init(&huart1); // 初始化串口
Serial1.begin(9600); // 设置波特率
}
void loop() {
if (Serial1.available()) { // 当STM32接收到数据
char received = Serial1.read(); // 读取数据
Serial.print("Received from ESP32: ");
Serial.write(received); // 打印到STM32串口
}
}
```
阅读全文