Arduino Nano 33 IoT 的软件序列号

2024-05-10

我计划从旧的 5V Arduino Nano 迁移到新的 Arduino Nano 33 IoT。我已经使用软件串行 (SoftwareSerial.h) 为旧的 5V Arduino Nano 编写了一个功能代码,以便与 Sim800L 模块进行通信。然而,当我将板更换为新的 Arduino Nano 33 IoT 时,找不到软件串行库。

我尝试在“草图”下的“包含库”菜单中找到它,但该库根本不存在。鉴于该产品是如此新,我还没有找到任何有用的研究来帮助我解决这个问题。我的 EEPROM 库也有同样的问题。

#include <SoftwareSerial.h>
#include <EEPROM.h>

有谁知道如何为新的 Nano 33 IoT 板包含 SoftwareSerial.h 和 EEPROM.h 库,或者可能知道用于新板的新库?

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

Sim800L_V7.1:3:12: error: SoftwareSerial.h: No such file or directory

   #include <SoftwareSerial.h>

            ^~~~~~~~~~~~~~~~~~

compilation terminated.

exit status 1
SoftwareSerial.h: No such file or directory

任何帮助将不胜感激 谢谢


没有SoftwareSerial.h可用于 Arduino Nano 33 IoT,因为它不是必需的。该板提供更多功能: 可分配给不同引脚的硬件序列。

此功能由微控制器 Atmel SAMD21G 提供,称为 I/O 多路复用(详细信息请参阅数据表 Atmel SAM D21E / SAM D21G / SAM D21J https://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/Atmel-42181-SAM-D21_Datasheet.pdf)。微控制器提供 6 个 SERCOM,您可以将它们分配给(几乎)任何引脚。

部分 SERCOM 已被 Arduino Nano 33 IoT 使用:

  • 用于 SPI NINA 的 SERCOM2
  • MOSI/MISO 的 SERCOM3
  • 用于 I2C 总线的 SERCOM4
  • SERCOM5 用于串行调试 (USB)

我们仍然有 SERCOM0 和 SERCOM1。

引脚分配的详细信息在variant.cpp and variant.h文件。由于 Arduino 是开源的,您可以轻松地在SAMD 板的 GitHub 存储库 https://github.com/arduino/ArduinoCore-samd.

对于 Arduino Nano 33 IoT,引脚分配如下所述:

  • 变体/nano_33_iot/variant.cpp https://github.com/arduino/ArduinoCore-samd/blob/master/variants/nano_33_iot/variant.cpp
  • 变体/nano_33_iot/variant.h https://github.com/arduino/ArduinoCore-samd/blob/master/variants/nano_33_iot/variant.h

通过阅读variant.cpp,我们了解引脚分配,尤其是 SAMD 引脚(PAxx 或 PBxx)和 Arduino 引脚之间的链接。

SAMD 引脚对于与端口功能复用的链接非常重要数据表 Atmel SAM D21E / SAM D21G / SAM D21J https://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/Atmel-42181-SAM-D21_Datasheet.pdf.

SERCOM 可以是classic or 备用。在数据表中,classic在 C 列中,并且备用位于 D 列中。SERCOM 由其索引和焊盘定义。例如:SERCOM0/PAD[3]也称为0.3.

Remark:RX 的焊盘定义为 0 到 3,但 TX 仅定义为 0 和 2。当您选择要使用的引脚时,这是一个重要的考虑因素。

作为参考,请参阅我用来选择要分配的 SERCOM 的表。 https://i.stack.imgur.com/pNIdV.png

理论足够了,去寻找解决方案......

Add a 引脚 5 (RX) 和 6 (TX) 上的硬件串行Arduino Nano 33 IoT 的:

#include <Arduino.h>
#include "wiring_private.h"

Uart mySerial (&sercom0, 5, 6, SERCOM_RX_PAD_1, UART_TX_PAD_0);

// Attach the interrupt handler to the SERCOM
void SERCOM0_Handler()
{
    mySerial.IrqHandler();
}

void setup() {
  // Reassign pins 5 and 6 to SERCOM alt
  pinPeripheral(5, PIO_SERCOM_ALT);
  pinPeripheral(6, PIO_SERCOM_ALT);

  // Start my new hardware serial
  mySerial.begin(9600);
}

void loop() {
  // Do something with mySerial...
}

另一个例子,添加一个引脚 13 (RX) 和 8 (TX) 上的硬件串行Arduino Nano 33 IoT 的:

#include <Arduino.h>
#include "wiring_private.h"

Uart mySerial (&sercom1, 13, 8, SERCOM_RX_PAD_1, UART_TX_PAD_2);

// Attach the interrupt handler to the SERCOM
void SERCOM1_Handler()
{
    mySerial.IrqHandler();
}

void setup() {
  // Reassign pins 13 and 8 to SERCOM (not alt this time)
  pinPeripheral(13, PIO_SERCOM);
  pinPeripheral(8, PIO_SERCOM);

  // Start my new hardware serial
  mySerial.begin(9600);
}

void loop() {
  // Do something with mySerial...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Arduino Nano 33 IoT 的软件序列号 的相关文章

  • 多个源的 makefile

    在学习 make 文件时 我试图为多个源目录编写一个 make 文件 似乎我在某个地方错了 这是我的代码结构 directory common fun2 c inc fun h src fun1 c main c 这是我的生成文件 CC c
  • 单元测试验证失败

    我正在运行我的单元测试PostMyModel路线 然而 在PostMyModel 我用的是线Validate
  • 如何在另一个应用程序中挂钩 api 调用

    我正在尝试挂钩另一个应用程序的 ExtTextOut 和 DrawTextExt GDI 方法调用 我知道我需要使用 GetProcAddress 来查找 gdi32 dll 中那些方法的地址 并用我的函数的地址覆盖我想要挂钩的进程中的地址
  • 在现代 C++ 中,临时生命周期延长何时有用?

    在 C 中 您可以将函数的返回值 返回值 而不是引用 绑定到 const 引用 并且代码仍然有效 因为该临时对象的生命周期将延长到作用域末尾 例如 std string get string return abc void f const
  • 将表(行)与 OpenXML SDK 2.5 保持在一起

    我想在 Word 文档中生成多个表 每行 2 行 但我想将这两行保留在一起 如果可能的话 new KeepNext 第一行不起作用 new KeepNext 第一行的最后一段不起作用 new CantSplit 放在桌子上不起作用 在所有情
  • 使用 LINQ 更新 IEnumerable 对象的简单方法

    假设我有一个这样的业务对象 class Employee public string name public int id public string desgination public int grade List
  • 获取 boost Spirit 语法中的当前行

    我正在尝试使用 boostspirit 获取正在解析的文件的当前行 我创建了一个语法类和结构来解析我的命令 我还想跟踪在哪一行找到命令并将其解析到我的结构中 我将 istream 文件迭代器包装在 multi pass 迭代器中 然后将其包
  • 使用查询表达式对 List 进行排序

    我在使用 Linq 订购这样的结构时遇到问题 public class Person public int ID get set public List
  • 根据对象变量搜索对象列表

    我有一个对象列表 这些对象具有三个变量 ID 名称和值 这个列表中可能有很多对象 我需要根据ID或Name找到一个对象 并更改值 例子 class objec public string Name public int UID public
  • 使用 C# 和 wpf 创建类似 Dock 的应用程序

    我需要创建一个与我们购买笔记本电脑时获得的应用程序类似的应用程序 仅当鼠标指针到达窗口顶部时它才可见 那么我怎样才能使用 C 4 0 来做到这一点呢 http www notebookcheck net uploads pics win2
  • 在 asp.net MVC 中使用活动目录进行身份验证

    我想使用活动目录对我的 asp net mvc 项目中的用户进行身份验证 在网上冲浪了几个小时后 我没有找到任何对我有用的东西 我已经看到了所有结果 但什么也没有 我尝试按照许多帖子的建议编辑我的 web config 如果有人可以帮助我提
  • 搜索实体的所有字段

    我正在尝试在客户数据库上实现 多功能框 类型的搜索 其中单个查询应尝试匹配客户的任何属性 这是一些示例数据来说明我想要实现的目标 FirstName LastName PhoneNumber ZipCode Mary Jane 12345
  • 使用具有抗锯齿功能的 C# 更改抗锯齿图像的背景颜色

    我有一个图像需要更改背景颜色 例如 将下面示例图像的背景更改为蓝色 然而 图像是抗锯齿的 所以我不能简单地用不同的颜色替换背景颜色 我尝试过的一种方法是创建第二个图像 仅作为背景 并更改其颜色并将两个图像合并为一个图像 但是这不起作用 因为
  • Project Euler #8,我不明白我哪里出了问题[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在做项目欧拉第八题 https projecteuler net problem 8 其中我得到了这个大得离谱的数字 7316
  • 使用 GCC 生成可读的程序集?

    我想知道如何使用GCC http en wikipedia org wiki GNU Compiler Collection在我的 C 源文件中转储机器代码的助记符版本 这样我就可以看到我的代码被编译成什么 你可以使用 Java 来做到这一
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • 在 OpenGL 中渲染纹理 1 到 1

    所以我想做的是使用 OpenGL 和 C 将纹理渲染到平面上 作为显示图像的一种方式 但是我需要确保在渲染纹理时没有对纹理进行任何处理 抗锯齿 插值 平滑 模糊等 这是 OpenGL 处理渲染纹理的默认方式吗 或者是否需要设置一些标志才能禁
  • 逆向工程 ASP.NET Web 应用程序

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什
  • 选择查询不适用于使用Parameters.AddWithValue 的参数

    C 中的以下查询不起作用 但我看不出问题所在 string Getquery select from user tbl where emp id emp id and birthdate birthdate cmdR Parameters
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T

随机推荐

  • Flutter - 每次应用程序重新启动后保留变量的值

    在我的一页上 我希望我的用户从一个变量上的默认文本开始 codeDialog 然后我希望他们更改该文本 之后他们编写的文本将成为我的新默认文本 遗憾的是我无法让它发挥作用 现在 当我重新启动应用程序并打开该屏幕时 它会重置为null 我认为
  • PHP 特性 - 定义通用常量

    定义可由命名空间内的多个类使用的常量的最佳方法是什么 我试图避免过多的继承 因此扩展基类不是理想的解决方案 并且我正在努力寻找使用特征的良好解决方案 这在 PHP 5 4 中是否可行 或者应该采取不同的方法 我有以下情况 trait Bas
  • 记录此异常并处理它,或者使用一些上下文信息重新抛出它

    有人可以帮我解释为什么 SonarLint 会显示这个 要么记录此异常并处理它 要么使用一些上下文信息重新抛出它 对于下面的代码 public static
  • 如何在 Hadoop 中将 String 对象转换为 IntWritable 对象

    我想转换String反对IntWritableHadoop 中的对象 任何过程都可以进行转换 IntWritable value new IntWritable Integer parseInt someString 并处理以下可能性par
  • android widget 和 localservice 绑定

    我编写播放器 它的主要活动是运行本地服务 我找不到如何将本地服务绑定到小部件 当我尝试像在活动中一样绑定它时 它失败了 请帮助我 添加 1 何时可以联系后台服务 http www developer com ws data article
  • NSAttributedString 和表情符号:位置和长度问题

    我正在使用 NSAttributedString 对来自 API 的文本的某些部分 如 Twitter 上的 mention 进行着色 API 为我提供了文本和代表文本中应着色的部分 或链接 标签等 的实体数组 但有时 颜色会因为表情符号而
  • Scala - Java = ? (或者 Clojure - Java = ?)

    开发人员可以在不懂 Java 的情况下使用 Scala 吗 开发人员可以在不懂 Java 的情况下使用 Clojure 吗 注意 例如 我是一名 C 开发人员 我在不了解任何 VB 的情况下使用 NET 当然 WF 4 0 使用 VB 进行
  • 与竞争的消费者顺序处理消息

    Problem 我以特定顺序 FIFO 在队列上接收消息 比如订单 我的队列中有竞争的消费者 为了进一步增加复杂性 消费者可能只对订单的特定版本感兴趣 具体取决于其状态 例如版本 1 版本 2 和版本 5 订单版本号在订单上可用 但不能用于
  • PHP:如何获取
    中的名称值

    有没有办法获取form标签中name属性的值 我正在使用 PHP 但在 中没有看到它 POST 有没有办法获取form标签中name属性的值 我正在使用 PHP 但在 POST 中没有看到它 不 表单的名称属性永远不会设置为作为 POST
  • 尝试从 Django 模板更改语言时出现问题

    我需要包含两个按钮或链接以允许用户在英语和西班牙语之间更改语言 我读了the docs https docs djangoproject com en 1 5 topics i18n translation the set language
  • 在旧版本的 API 上更改 ContentObserver Onchange 上的 uri [重复]

    这个问题在这里已经有答案了 可能的重复 如何获取内容观察器中插入行的 URI https stackoverflow com questions 8432800 how to get uri of inserted row in my co
  • 如何在没有外部库的情况下以 Polymer 方式处理悬停?

    我想我需要做类似的事情 li blah li 因为处理点击看起来像这样 li blah li 我尝试使用此处文档中显示的方式 声明式事件映射 http www polymer project org docs polymer polymer
  • 如何发布和接收 NSNotifications(目标 C) |通知(Swift 中)?

    是否有一种易于理解的模式如何发送 NSNotification 目标 C 通知 Swift 中 以及如何接收通知 代码片段 文档关于这个主题写了大约 150 页 想看一个简单的例子 发送通知 NSNotificationCenter def
  • 简单的跨平台 TCP IP API?

    我不打算使用像 QT 或 wxWidgets 的 API 这样的大东西 我只想要可以在 Android iOS Windows Mac Linux 上运行的简单套接字 我正在制作一个事件驱动的纸牌游戏 所以 TCP 是最好的 本质上 我只想
  • 按大小、日期、名称等在回收器视图中排序并记住选择

    我正在制作图库应用程序 我想为其添加排序功能 我可以使用以下命令在运行时对项目进行排序Comparator但问题是 每当我退出应用程序时 列表都会再次从数据库中出来 并且所有列表都未排序 我想在我的应用程序中提供按日期 大小 名称等排序的选
  • 有没有办法声明一个类似 Linq 的 CustomWhere() 方法并在没有冗余项的情况下调用它?

    我们有一个使用 EntityFramework 无法使用的旧数据库的项目 所以我们开始构建一个带有基类的穷人EntityFrameworkCustomBaseTable实体类从中派生 又一堂课 CustomQueryBuilder 具有构建
  • 如何通过 XElement 添加属性

    我有这个代码 XElement EcnAdminConf new XElement Type new XElement Connections new XElement Conn Conn SetAttributeValue Server
  • 如何访问 Javascript 对象的第一个属性?

    有没有一种优雅的方式来访问对象的第一个属性 您不知道您的房产名称的地方 不使用类似的循环for in或者 jQuery 的 each 例如 我需要访问foo1不知道 foo1 名称的对象 var example foo1 stuff1 fo
  • Task.Factory.StartNew 与异步方法

    可能是一个微不足道的问题 但它可能有助于我的基本理解 以下两个实现之间有什么重要区别吗 Task Factory StartNew public Task
  • Arduino Nano 33 IoT 的软件序列号

    我计划从旧的 5V Arduino Nano 迁移到新的 Arduino Nano 33 IoT 我已经使用软件串行 SoftwareSerial h 为旧的 5V Arduino Nano 编写了一个功能代码 以便与 Sim800L 模块