c++ - 无法将 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' 未在此范围内声明。
任何帮助将不胜感激。
提前致谢!
解决方案
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) 引脚
推荐阅读
- javascript - 删除用 HTML5 Canvas 制作的圆圈
- c# - 如何根据位置遍历网格顶点?
- php - 无法创建新的 AMQPSSLConnection“断开的管道或关闭的连接”
- json - 嵌套结构的解组字段不起作用
- r - geom_tile : 清洁对角线瓷砖边框
- php - PHP:一个对象的array_filter?
- php - 正则表达式匹配从右到左
- javascript - 在 postgres 中动态更新字段而不使用 || 操作员
- c++ - 复制二维结构数组c ++
- microsoft-graph-api - 将应用程序连接到 OneDrive for Business 中国