Arduino 的 SoftwareSerial 库不适用于由 ATMEGA32 制成的克隆,因为它没有 PCINT 功能。串行通信如何与 PCINT 链接?ATMEGA32/16的INT引脚可以通过修改SoftwareSerial.cpp文件以某种方式使用吗?
问问题
1672 次
1 回答
0
在 IDE 1.0.+ 之前,SoftwareSerial 曾经是 Rx 引脚的轮询。这是阻塞,需要不断检查 RX 的服务并限制波特率的质量。由于 NewSoftSerial 使用 PCint 替换了以前较旧的 Polled SoftwareSerial。这会在 RX 引脚的变化上创建一个中断,然后检查时间。这不再阻塞并更好地模拟硬件串行端口,需要更少(无)服务(或轮询)。
可以从 1.+ 之前返回到旧 IDE 的 SoftwareSerial 并尝试将其向前移植或尝试在旧 IDE 中使用 ATmega32。我以为我在某处看到了一个 DEFINE 开关,可以让它在轮询模式下运行。但我无法在当前版本中找到它。可能没有进入发布的 IDE。
或者,您可以尝试寻找 SoftwareSerial 的替代品。比如tinyserial我看到的可以追溯到 2010 年的地方,可能需要一些更新。特别是在 1.5.8 上。在 1.0.6 上尝试可能会更好
于 2015-02-06T14:28:34.147 回答