【发布时间】:2019-02-18 19:18:48
【问题描述】:
我开始在 Arduino 上使用端口,而不是手动将每个引脚设置为低或高。 这非常有用,而且速度更快。我在一个项目中,我需要至少一个全端口(8 位)和至少一个串行端口。
我想使用 Arduino UNO,但它只有一个全端口,端口 D。 PD0 和 PD1 用于串行通信。这意味着我不能使用端口 D。
我想知道是否有可能将多个端口合并为一个“虚拟端口”。最后我想要这样的东西:
PORTX = 0b11111111; // the first 2 bits are PB0/PB1 and bit 3-8 are PD3-PD8
这有可能吗???
【问题讨论】:
-
您可以使用所有端口 D。只需为您的串行端口使用软件串行通信(bit-banging)。
-
我喜欢使用所有的端口D 和串行通信。引脚 D0 和 D1 硬连线到 USB,所以我认为没有办法使用其他引脚进行串行通信
-
您不需要实际的串行端口来进行串行通信。您可以使用任何可用的 GPIO 引脚来使用 bit-banging。见georgetimmermans.com/arduino-serial-driver.html
-
可以使用宏或小函数从/向正确的端口读取/写入。
-
@Chimera 是的,bitbanging 是可能的,但是如何将用户定义的串行端口连接到 USB(这是 arduino 最常用的接口)?
标签: arduino port microcontroller arduino-c++