我使用 ESP-WROOM-02(esp8266 内核)作为 WIFI 模块和 samd21g18 作为主处理单元。为了进行测试,我使用了 ESP-WROOM-02
开发板套件和一个 Arduino nano IOT,它还有一个 samd21g18 MCU。我通过 ESP 闪存下载工具和 AT 固件 v2.2.1.0 闪存了 ESP-WROOM-02。用户指南强调 ESP-WROOM-02 的默认 ESP8266 RTOS AT 固件将 RX/TX 与 CTS/RTS 交换。
为了测试 UART,我使用了 Arduino 串行监视器和连接到板载 FTDI 的 UART。为了连接新的引脚(IO15 和 IO13),我将引脚 RX0 连接到 IO13,将 TX 连接到 IO15 作为旁路。当我发送任何 AT 命令(或我在串行上写的任何东西)时,ESP 总是返回一个空行和一个新行说准备好了。拳头我很难说是 CR 和行尾,我尝试了所有组合都没有用。
为了了解发生了什么,我将逻辑分析仪连接到 RX0,以检查是否与我通过串行监视器发送的内容相同。它发送正确。
然后,我将逻辑连接到 IO15(ESP TX)。但似乎有些不对劲。第一条消息丢失了一点。
[
然后我测试了使用 arduino nano iot 33(使用 3.3V 电平)将 AT 命令发送到 ESP。我直接将 arduino 连接到 IO15 和 IO13,但结果最糟糕,因为 ESP 没有对 arduino 做出任何回复。代码:
代码:
全选#include
#include "wiring_private.h"
//see https://github.com/ostaquet/Arduino-Nano-33-IoT-Ultimate-Guide
Uart Serial0 (&sercom0, 5, 6, SERCOM_RX_PAD_1, UART_TX_PAD_0);
String a;
// Attach the interrupt handler to the SERCOM
void SERCOM0_Handler()
{
Serial0.IrqHandler();
}
void setup() {
pinMode(LED_BUILtiN, OUTPUT); // set LED pin as output
digitalWrite(LED_BUILTIN, LOW); // switch off LED pin
// Reassign pins 5 and 6 to SERCOM alt
pinPeripheral(5, PIO_SERCOM_ALT);
pinPeripheral(6, PIO_SERCOM_ALT);
Serial.begin(115200); // initialize serial communication at 9600 bits per second:
// Start my new hardware serial
Serial0.begin(115200);
}
void loop() {
Serial0.println("AT+GMR");
while (Serial0.available()) {
a = Serial0.readString();
Serial.print(a);
}
delay(1000);
}
另一方面,ESP TX 根本不回复。我还尝试将波特率降低到 9600(在用户指南中说要用 115200 进行测试)。