#pragma once #include "driver/uart.h" // ESP32 → RP2040 的 UART 通信引脚定义 // ESP32 的 GPIO17(TX) 连接 RP2040 的 GP5(RX) // ESP32 的 GPIO18(RX) 连接 RP2040 的 GP4(TX) #define TXD_PIN 17 #define RXD_PIN 18 #define UART_PORT_NUM UART_NUM_1 // 使用 UART1(UART0 用于调试日志) #define BUF_SIZE 1024 // 初始化 UART 组件(115200 波特率,8N1) void uart_init_component(); // 发送状态字符串给 RP2040(如 "speaking"、"listening"、"idle" 等) // RP2040 收到后驱动 9 个舵机执行对应动画 void uart_send_string(const char* str); // 发送说话开始信号 void uart_signal_start(); // 发送说话停止信号 void uart_signal_stop(); // 发送人脸检测坐标,格式:"face:,\r\n" // x,y ∈ [-112, +112],RP2040 端 pixel_centre=112 解析(T07) // 使用 C 链接名:face_tracker.cc 以 `extern "C" __attribute__((weak))` 前向声明该符号, // 链接器用此 strong 实现自动覆盖 weak 版本。不可改为 C++ 名字修饰。 #ifdef __cplusplus extern "C" { #endif void uart_send_face(int x_offset, int y_offset); #ifdef __cplusplus } #endif