🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **多串口[Mega]** > 有时候,一个串口远不能满足你!当你尝试和多个串口设备通信,并且还想将数据发送到串口监视器,多几个RX/TX串口就是你迫切需要的了。本例向你展示Arduino Mega和Genuino Mega上3个附加串口的使用。以及如何将其他串口的数据转发到TX串口,以此在串口监视器上看到。 ### **所需硬件设备** Arduino Mega板 Genuino Mega板  串口设备(Xbee板,蓝牙模块或者RFID阅读器或者另一个Arduino都可以)  连接线 ### **电路** ![图片来自官网](http://img.blog.csdn.net/20160513090547562)  准备好表格上你需要的串口设备后,请确保板子被正常供电并且线路连接正确。串口设备上的**RX**口应该连接到MEGA板上的**TX1**口,串口设备上的**TX**口应该连接到MEGA板上的**RX1**口。如果不清楚,请看原理图。 你还要确保MEGA板正常通过USB连接到电脑。 ### **原理图** ![图片来自官网](http://img.blog.csdn.net/20160513090607531) ### **代码** 下列代码假定你已经将串口设备连接到板子上的TX1和RX1。 ~~~ /* 多串口[Mega] 从主串口获取数据并且转发到其他串口。 从串口1获取数据并且转发到主串口(串口0)。 代码只能在串口>=2的设备上使用。比如Arduino Mega、Due、 Zero等。 电路搭建: * 串口设备连接到串口1 * 串口监视器在串口0打开 代码是公开的。 */ void setup() { // 初始化串口: Serial.begin(9600); Serial1.begin(9600); } void loop() { // 从串口1转发到串口0: if (Serial1.available()) { int inByte = Serial1.read(); Serial.write(inByte); } // 从串口0转发到串口1: if (Serial.available()) { int inByte = Serial.read(); Serial1.write(inByte); } } ~~~ ### **相关资料** [serial.begin()](https://www.arduino.cc/en/Serial/Begin)  [serial.read()](https://www.arduino.cc/en/Serial/Read)  [serial.available()](https://www.arduino.cc/en/Serial/Available)  [if()](https://www.arduino.cc/en/Tutorial/IfStatement)