问题标签 [software-serial]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2692 浏览

timer - 使用 Servo 和 SoftwareSerial 时遇到计时器冲突问题

我在 Arduino Nano 板上使用 Servo.h 和 SoftwareSerial.h 时遇到计时器冲突问题。现在我需要 2 对串行引脚,通过在我的笔记本电脑上使用 NFC 模块和 Arduino 的串行监视器。

如果我得到的信息没有错的话,Nano board 中提供了三个定时器(timer0、timer1、timer2)。我听说 timer1 是 16 位定时器,Servo.h 和 SoftwareSerial.h 在 Nano 板上同时使用该 timer1,这就是他们无法避免定时器冲突问题的原因。

然而,我需要在没有计时器冲突的情况下使用这两个头文件。在这种情况下,我该怎么办?我是否必须修改 Servo.h 文件才能不使用 timer1?

因为我对伺服电机所做的只是控制角位置。

因此,除非我使用 PWM 控制,否则在我正在进行的这个项目中使用 16 位定时器是没有用的。

所以,此时,我想使用 timer0 或 timer2(都是 8 位定时器)而不是使用 timer1。否则,Servo 和 Software 头文件中的 timer1 将发生冲突。以下是我使用的源代码。

概括

我在使用 Servo.h 和 SoftwareSerial.h 时遇到计时器冲突问题。

他们都同时共享 timer1。为了避免这种碰撞问题并使这两个工作正常,我应该怎么做?我应该对源代码做一些事情,比如添加几行代码或修改那些头文件吗?

0 投票
1 回答
724 浏览

arduino - Arduino Nano Gnss 软件系列

我想连接 Arduino nano 和 GNSS(SIMCom 的 SIM33ELA 独立 GNSS 模块)。

首先我为 rx/tx 编写了一个程序,它运行良好,但现在我想使用 Software Serial 并且我得到了错误的数据。

任何想法?

关于结果的图片:

软件串行数据错误

良好的串行数据

0 投票
1 回答
315 浏览

arduino - 如何通过 Softwareserial 库循环模拟读取多个 RFID 阅读器?

我正在做一个需要同时读取六个 ID-12LA RFID 阅读器的项目。

我尝试通过 Sparkfun 模拟/数字 MUX 分线板 (CD74HC4067) 设置六个通道的读数,但没有运气。我不知道它是否能够进行串行通信,尽管我在 Bildr.org 上看到过。

但是,我现在正在尝试通过 SoftwareSerial 库模拟从多个串行端口读取。我读过它不能同时阅读,但也许一个循环可以模拟同时收听。我试图通过监听第一个序列,然后初始化readTag(),然后在该函数完成后,开始监听第二个序列,然后初始化第二个函数。

当仅连接RFID阅读器时,该readTag()功能能够自行阅读,所以这不是问题。

下面是代码。

通过循环功能进行和模拟同时阅读的正确方法是什么?

0 投票
0 回答
521 浏览

arduino - Arduino延迟功能和SoftwareSerial之间的冲突

看来我在 SoftwareSerial 和delay我的 Arduino 上的功能(GeekCreit 在 Banggood 上购买)之间存在冲突。我正在尝试使用 SoftwareSerial 将 AT 命令发送到 ESP-01。

当我执行:

一切正常,发送了 AT 命令,我收到了 ESP 的响应。

但是当我在发送 AT 命令之前添加延迟时,什么都没有发生:没有发送命令,ESP 没有回答。

我做错了什么,有人遇到过同样的问题吗?

我尝试改用 AltSoftSerial,但我遇到了同样的问题。

0 投票
0 回答
470 浏览

arduino - Arduino Leonardo 上的蓝牙软串行和 PS2 控制器

我正在尝试组合两个被识别为单个游戏手柄/控制器的输入源。为此,我使用了一个 Arduino Leonardo,它可以使用Joystick.h库轻松转换为 HID 设备。作为输入,我使用 (1) 带有 PS2x 库的 PS2 控制器和 (2) 来自在主模式下工作的 HC-05 的蓝牙串行数据。

我已经构建了一个单独的草图来读取和解析蓝牙数据,甚至设法通过Joystick.h库将其转发到 PC。

同时,为了使用 PS2 控制器,我使用相同的 Arduino Leonardo 将 PS2 连接到 USB。然而,当我试图结合这两个草图(结合来自 BT 和 PS2 的两个输入)时,有些东西不起作用。

我发现用于从 PS2 控制器读取值的 PS2_lib 会阻止 Arduino 读取 BTSerial 数据或反之亦然。

这是草图,当ReadOneByte()被调用时,没有任何效果。

如果我注释掉 while 循环,PS2 和游戏手柄就可以工作。

完整草图:

0 投票
1 回答
1483 浏览

serial-port - Arduino SoftwareSerial Rx/Tx 引脚顺序错误?

我正在编写代码以在由 Arduino 作为 ISP 编程的 ATtiny 上运行。ATtiny 通过串行链路向 RN42 蓝牙模块发送 AT 命令。

由于阁楼没有 UART,我在引脚 0 和 1 上使用 SoftwareSerial。将 Tx 放在“数据输出”/MISO 引脚上,将 Rx 放在“数据输入”/MOSI 引脚上似乎是合乎逻辑的。文档说要像 SoftwareSerial mySerial(Rx, Tx); 但我发现它只有在你像 SoftwareSerial mySerial(Tx, Rx);

我已经截取了我的代码和引脚分配的屏幕截图,我觉得我错过了一些东西,但是当我这样做时,它可以工作并使蓝牙模块进入命令模式。文档是错误的吗?

代码和引脚

0 投票
1 回答
653 浏览

arduino - ATtiny85 与蓝牙模块的串行通信

对于一个简单的项目,我想使用连接到 HC-06 蓝牙模块的 ATtiny85,这样它就可以与我的 Android 手机通话。

我为我的 Arduino Uno 编写了代码,它按预期工作。当我更改要在我的 ATTiny85 上使用的代码时,我收到一条错误消息,'Serial' was not declared in this scope并假设 ATTiny 不支持硬件串行。

我需要在收到时读取一个字符串,在没有收到时让 MCU 休眠。我去使用 SoftwareSerial 并且无法获得字符串,只是第一个字符。

我以某种方式接近它,例如将 a 定义char string[10];为全局并string[i] = mySerial.read(); i++;在循环内部,但它一直不起作用。无论是睡眠,还是我读取数据的工作,我都无法让它工作。

有人可以提供一种方法让 ATTiny85 进入睡眠状态,唤醒以通过串行接收字符串并睡眠直到通过串行的下一个数据,好吗?

睡觉我正在使用

我的循环就像

谢谢大家。

0 投票
1 回答
1685 浏览

arduino - ESP8266 - 来自服务器的响应被切断

我正在使用通过 SoftwareSerial 连接到 Arduino 的 ESP8266 向节点 Web 服务器发出发布请求。ESP8266 向服务器发送一些数据,它应该取回其他数据。数据正确到达服务器,但来自服务器的响应不完整(每次都以不同的方式被切断),我无法从我的 Arduino 草图访问响应的主体。服务器正确发送响应,正如我使用 hurl 检查过的那样。

这是我的代码:

0 投票
1 回答
342 浏览

serial-communication - 我想了解 Nodemcu 中的串行通信。我们如何像在 arduino 中使用的那样一次使用 2 个以上的序列

我是新手,我只想知道我们是否可以通过使用软件串行在 nodemcu 中使用超过 2 个串行通信。我目前正在使用 3 个需要串行通信的模块,我想将它们与单个 Nodemcu 一起使用。可能吗?

我正在尝试将 GPIO 4 和 5 用于一个串行 Comm,将 Rxd2 和 Txd2 用于第二个串行。它会起作用吗?

0 投票
1 回答
471 浏览

arduino - 由于 GPS 模块,如何连接 Arduino?

我正在做一个 Arduino 项目,我是 Arduino 的初学者,所以我开始从互联网上获取代码并尝试学习和理解它,

https://www.hackster.io/bigboystoys13/diymall-gprs-gps-sim5320e-3g-module-at-commands-d1cbfe

我尝试将此代码上传到Due板,因此软件串行库出现错误,这是错误: