1、arduino主板上的 RX TX 引脚 有时不一定够用,这时就需要将别的 引脚 通过软件 模拟成串口通信引脚,但不是每个引脚 都能这么转换,不同的板子,有所不同。
2、arduino Uno 上只有一个 RX TX 引脚,分别是 0和1 引脚,这两个引脚通常是默认与电脑之间进行通信用的,Serial.begin Serial.print Serial.read 针对的都是这个引脚。 如果 arduino Uno需要和别的硬件进行串口通信,就必须 设定软串口,将别的引脚 拿来当作串口通信引脚来使用。首先 就要 包含相应的库函数 SoftwareSerial.h , 然后 用 SoftwareSerial name(rxPin, txPin) 来定义一个软串口 name, 并且 还要用 name.listen(),来监听这个软串口。 当然 也不是任意的引脚都能做串口通信引脚(引脚需要支持中断功能)。
3、如果原本 arduino的板子上 就有 不止一个 TX RX引脚,有时 就可以直接用 板子上的 TX RX引脚。以 arduino mega 2560来说,其上 有 RX0 TX0, RX1 TX1,RX2 TX2,RX3 TX3 四对串口引脚, RX0 TX0 , 是默认与电脑通信的, 用serial 设置, 和其他板子通信时,如果是接在 RX1 TX1 上,我们用 serial1 来设置,同理 接在 RX2 TX2 上,我们用 serial2 来设置, 而不需要用 SoftwareSerial 来设置软串口,也不用 listen()函数来监听。 但是 我们如果用的是其他引脚 比如 10 11 来做串口通信,就要用 SoftwareSerial name(rxPin, txPin) 来设定了。
Arduino开发中,当RX/TX引脚不足时,可以使用SoftwareSerial库创建软串口,但并非所有引脚都适用,需要支持中断功能。Arduino Uno默认使用0和1引脚进行串口通信,若需额外串口,可设定软串口如 Serial1, Serial2等,对于有多对串口引脚的板子如Arduino Mega2560,则可以直接利用额外的RX/TX对进行通信,无需软串口。
4万+

被折叠的 条评论
为什么被折叠?



