Arduino 2560软串口设置全部参数

有没有什么办法可以设置软串口的全部参数呢?现在只能设置波特率,我想要设置所有的参数。

你好 @ruchen
是的他有,
看到這個鏈接:

房車礦素

https://www.arduino.cc/reference/en/language/functions/communication/serial/begin/

hello,What I need is a soft serial port。 :joy:

为啥呢?三个硬件串口还不够吗?软串口速度比较慢,对主程序运行速度影响也比较大。

:grinning:是这样的,我想拿2560弄一个串口服务器,硬串口不够。官方软串口库只能默认,只能修改波特率,我在国内没找到基于软串口库升级的,像我这种水平不是很高的,又自己写不出来。我看IO模拟串口,有什么延时法,计数法,和中断法,看的蒙蒙的,所以看看这里有没有简易的解决方案。 :grinning:

你能描述一下你的项目到底是想实现什么目标吗?需要多少串口,数据如何在这些串口之间流动,什么速度?软串口可以定义多个,但是只能一次读一个。在对其中一个软串口时,其他的软串口即使有数据,也会丢失。即使是硬件串口,硬件缓冲也只有一个字节。所以要是三个都以高速接收数据,再加上软串口频繁中断程序,也有可能造成数据丢失。我这些都是白说,因为我只是猜测你可能遇到的问题。

:grinning:我只是用来发送数据,不用来接收,8个软串口,速度一般在19200前后,主要控制一些投影机什么的硬件设备。就是通过USB硬件串口,接收到数据,通过字符串解析,然后通过某一路串口,配置好参数,发送给硬件。

你应该一开始就解释清楚。现在我明白了。你除了波特率,还需要什么设置?
看这里,数据是八位,除非你改源代码。

https://github.com/arduino/ArduinoCore-avr/blob/24e6edd475c287cdafee0a4db2eb98927ce3cf58/libraries/SoftwareSerial/src/SoftwareSerial.cpp#L446

你可以试试这个:

1:8 mux/demux
把Serial1 TX连到sig,然后每个c管脚接到一个外部硬件串口的rx。注意在c管脚要加上拉电阻,这样切换的时候不会出问题。