首页 > 解决方案 > 无法将 Arduino NANO 33 IOT 连接到 NEO 6M GPS 模块

问题描述

我正在尝试将 Arduino NANO 33 IOT 连接到 NEO 6M GPS。我了解,SoftwareSerial 不适用于这种情况,因为它使用可以分配给不同引脚的硬件串行。

我试过这个连接:

Arduino 33 IOT RX0 -> Neo RX,

Arduino 33 IOT TX1 -> Neo TX,

Arduino 33 物联网 3.3V -> VCC,

Arduino 33 物联网 GND -> GND,

使用以下代码:

#include <Arduino.h>

#include “wiring_private.h”

UART mySerial (&sercom0, 1, 0, SERCOM_RX_PAD_1, UART_TX_PAD_0);

// 将中断处理程序附加到 SERCOM

无效SERCOM0_Handler()

{

mySerial.IrqHandler();

}

无效设置(){

// 将引脚 1 和 0 重新分配给 SERCOM alt

pinPeripheral(1,PIO_SERCOM_ALT);

pinPeripheral(0,PIO_SERCOM_ALT);

// 启动我的新硬件串口

mySerial.begin(9600);

}

无效循环(){

// 用 mySerial 做一些事情...

}

我在编译时收到以下错误消息:

'PI0_SERCOM_ALT' 未在此范围内声明。

任何帮助将不胜感激。

提前致谢!

标签: c++arduinogps

解决方案


Arduino SAMD 内核已经具有 Nano 33 IoT 的 RX 和 TX 引脚的串行实例。这在 variant.h/.cpp 中定义为

#define PIN_SERIAL1_RX       (0ul)
#define PIN_SERIAL1_TX       (1ul)
#define PAD_SERIAL1_TX       (UART_TX_PAD_2)
#define PAD_SERIAL1_RX       (SERCOM_RX_PAD_3)

Uart Serial1( &sercom5, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX );

注意:在 Arduino 和 GPS 模块之间用线发送 (TX) 到接收 (RX) 引脚


推荐阅读