台达dvp系列plc编程软件:ArduinoNano33 IoT系列软件

关于台达dvp系列plc编程软件的问题,在softwareserial arduino中经常遇到, 我计划从旧的 5V Arduino Nano 迁移到新的 Arduino Nano 33 IoT。我已经使用软件串行 (SoftwareSerial.h) 为旧的 5V Arduino Nano 编写了一个功能代码,以与 Sim800L 模块通信。但是,当我将电路板更改为新的 Arduino Nano 33 IoT 时,找不到软件串行库。

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

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

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

有谁知道如何将 SoftwareSerial.h 和 EEPR0M.h 库包含在新的 Nano 33 IoT 板上,也许知道用于新板的新库?

是编译时得到的错误消息:

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

任何帮助将不胜感激

7

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

此功能由微控制器 Atmel SAMD21G 提供,称为 I / O 多路复用(详情见the data sheet Atmel SAM D21E / SAM D21G / SAM D21J第 21 页)。微控制器提供 6 个 SERCOM,您可以将其分配给(几乎)任何引脚。

Arduino Nano 33 IoT 已经使用了一些 SERCOM:

用于 SPI NINA 的 SERCOM2

SERCOM3 for MOSI / MISO

用于 I2C 总线的 SERCOM4

用于串行调试 (USB) 的 SERCOM5

我们仍然有 SERCOM0 和 SERCOM1。

引脚分配的详细信息在variant.cppvariant.h文件中进行了描述。由于 Arduino 是开源的,您可以在the GitHub repository for SAMD boards上轻松找到它们。

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

variants/nano_33_iot/variant.cpp variants/nano_33_iot/variant.h

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

SAMD 引脚对于连接the data sheet Atmel SAM D21E / SAM D21G / SAM D21J的 PORT 功能多路复用非常重要。

SERCOM 可以是classicalternate。在数据表中,classic在 C 列中,alternate在 D 列中。SERCOM 由其索引和焊盘定义。例如:SERCOM0/PAD[3]也称为0.3

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

For reference,see the table I used to select the SERCOM to assign.

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

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

#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...
}

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

#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...
}
1

我在官方的 Arduino Github 项目上问了同样的问题,Martino Facchin 给了我解决方案:

UART mySerial(digitalPinToPinName(4), digitalPinToPinName(3), NC, NC);

请注意,“Uart mySerial”应以大写“UART mySerial”编写,否则编译器将找不到 lib

有关解决方案和核心修改的更多信息:https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues/38

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(825)
辐射4油代码:NeRF(神经辐射场)用于什么(nerf machine learning)
上一篇
5i66网页游戏平台:同一网页上的多个 javascript/jquery脚本
下一篇

相关推荐

  • cvt和自动挡哪个好提升驾驶体验的最佳选择

    CVT(可变转换器)是一种由传动带及传动轮组成的无级变速器,它可以在没有传动档位的情况下,根据驾驶者的驾驶习惯,自动调整传动轮之间的转速比,从而实现无级变速。自动挡是指车辆自动变速箱,它使用液力传动来实现变速,可以自动适应车辆的行驶状态,减少司机的疲劳,提高行车的舒适性。…

    2023-06-08 07:42:19
    0 36 23
  • cv一叶扁舟和清影轩阳:漫游在一叶扁舟和清影轩阳之间

    cv一叶扁舟是一款开源的计算机视觉库,用于图像处理、计算机视觉等。它提供了丰富的API,可以帮助开发者快速实现各种图像处理任务,如图像分割、目标检测、图像识别等。清影轩阳是一款开源的计算机视觉框架,用于图像处理、目标检测、分类等。它提供了丰富的API,可以帮助开发者快速实现各种图像处理任务,如图像分割、目标检测、图像识别等。…

    2023-08-05 07:06:20
    0 36 66
  • css设置滚动条宽度设置:This is a title

    CSS设置滚动条宽度的方法:使用CSS3的。-webkit-属性:…

    2023-06-06 10:53:01
    0 94 18
  • xl和xe汽车cvt:探索XL和XE汽车的CVT技术优势

    XL和XE汽车CVT是一种变速器,它使用液力变矩器代替传统的机械变速器,以达到更高的效率。它的工作原理是,当发动机输出功率时,液力变矩器就会将这些功率转换为液压能量,然后将能量传递到变速器的输出轴上,从而实现变速。…

    2023-04-09 00:41:04
    0 13 76
  • cordon bleu是什么意思:法式炸鸡卷——Cordon Bleu的经典之作

    Cordon Bleu是一种烹饪技术,其中肉片被置于奶酪和火腿之间,然后用面包屑裹上,最后煎炸或烤熟。这种技术通常用于制作鸡肉,但也可以用于制作其他类型的肉类,如牛肉或猪肉。…

    2024-01-27 15:13:30
    0 37 27
  • countif 非空:非空单元格的计数

    Countif 非空是指计算某个单元格不为空的数量。代码如下:…

    2023-04-22 15:54:15
    0 98 81
  • java double保留一位小数:How to Round a Double to One Decimal Place in

    示例示例使用类可以轻松实现java double保留一位小数的功能,具体代码如下:// 创建对象…

    2023-05-14 07:40:03
    0 88 66
  • linux如何写c语言一个完整的指南

    示例示例在Linux系统中,可以使用C语言编写源代码文件,然后使用GCC编译器来编译源代码文件,生成可执行文件。下面是一个简单的C语言代码示例:…

    2023-05-16 02:02:45
    0 61 29

发表评论

登录 后才能评论

评论列表(65条)