Arduino如何同时使用多个串口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino如何同时使用多个串口相关的知识,希望对你有一定的参考价值。

参考技术A 如果想要给Arduino UNO R3同时接上WiFi模块和蓝牙模块时,但是Arduino的串口只有一个,怎样才能让Arduino同时使用多个串口呢?

其实Arduino官方提供了一个软串口的库SoftwareSerial,不需要额外的去库管理面板中导入,只需一句include语句就可以使用它

这个库可以将Arduino的引脚,通过程序模拟成串口来使用;
在声明语句中使用

便创建了一个自定义的软串口mySerial,并把数字引脚2定义成RX,数字引脚3定义成TX

我们现在通过实验验证软串口是否有效;让蓝牙模块的TXD和RXD接在Arduino的D2、和D3上,通过手机蓝牙串口调试助手发送数据给HC-05模块,如果软串口有效则成功控制舵机;

手机蓝牙连接上HC-05模块后,发送字符串,成功控制舵机

使用软串口,有两点好处;好处一:arduino就可以同时使用蓝牙模块和WiFi模块,再也不用为串口不够用而发愁了!好处二:使用软串口连接,就不用担心烧录程序时的串口干扰问题了,如果经常使用串口连接蓝牙或者WiFi模块的人绝对深有体会,再也不用烧录一次程序就要拔一次杜邦线了。

arduino 如何通过串口将变量传给电脑??

看你的i是什么类型了,一般Serial.println(i);就行了
也可以Serial.println(word(i));用word()转换下类型~没必要

如果要用Serial.println("%d",i);也不是不行,你可以自己改serial类,重载一下也没有问题

附录.Arduino中有的Serial.println()定义如下
void println (void)
打印换行
void println (char)
打印字符, 换行
void println (const char[])
打印整数, 换行
void println (uint8_t)
打印整数, 换行
void println (int)
打印整数, 换行
void println (unsigned int)
打印整数, 换行
void println (long)
打印整数, 换行
void println (unsigned long)
void println (long, int)
打印整数, 换行
void println (double)
打印浮点数, 换行
参考技术A 打开arduino ide 的serial monitor 就能看到串口传来的数据了追问

我的意思是,在程序中有一个变量i,变量i用来记录中断的次数,我要将这个i的数值通过串口发送给电脑,串口部分的代码怎么写,比如Serial.println("i");但电脑收到的是“i”,如果用Serial.println("%d",i);程序编译会报错……

以上是关于Arduino如何同时使用多个串口的主要内容,如果未能解决你的问题,请参考以下文章

arduino接收串口屏指令?

arduino串口接收的问题

Arduino处理STM32中的多个串口通讯问题

Arduino多串口/隐藏输出

如何借助蓝牙模块使用 Android 手机控制 Arduino

arduino 读取串口数值 ~