首页 » 智能 » Arduino串口不足用怎么办?_串口_法式

Arduino串口不足用怎么办?_串口_法式

落叶飘零 2025-01-07 05:47:09 0

扫一扫用手机浏览

文章目录 [+]

如果不雅观察板子引脚创造,只有一对串口,但是我们烧录程序时利用的也是通过串口传输的,这么说来Arduino该当是有两个串口的,为了搞明白这个问题,我特意去Arduino官网查了一下关于Arduino的事理图。

事理图如下所示,通过事理图我们知道,单片机只有一对串口,但是末了分两路出去,一起连在了板子上的排针上;

Arduino串口不足用怎么办?_串口_法式 Arduino串口不足用怎么办?_串口_法式 智能

其余一起通过两个发光二极管连在了一个叫做atmega的芯片上,程序通过这个芯片给单片机烧录程序。

Arduino串口不足用怎么办?_串口_法式 Arduino串口不足用怎么办?_串口_法式 智能
(图片来自网络侵删)

事理图如下所示,通过事理图我们知道,单片机只有一对串口,但是末了分两路出去,一起连在了板子上的排针上;

其余一起通过两个发光二极管连在了一个叫做atmega的芯片上,程序通过这个芯片给单片机烧录程序。

软串口

但是我们要利用两个串口怎么办呢?不用担心,Arduino早已为我们谋划好了统统,我们把上面Arduino板上标注的串口叫做硬串口。

除了硬串口之外,Arduino还为我们设计了一种软串口,也可以叫做虚拟串口,他是通过程序定义的一组串口,然后映射到Arduino的IO口,这样我们就可以额外的多出一组串口。

下面我们用软串口做一组小实验,经由串口1向Arduino发送数据,Arduino吸收到数据之后,再把数据转送到串口2,并让其在电脑上打印出来。

程序

上述小实验的程序如下图,我们创造这个程序与我们平时所见到的程序所不同的是,第一行多了一句:#include <SoftwareSerial.h>的语句,我们所利用的软串口全靠的这一语句。
它的浸染是将其它数字、仿照引脚通过程序仿照成串口通信引脚。

SoftwareSerial mySerial(8, 9);的意思是把8引脚定义为RX口,TX定义为TX口。

再下面的程序的浸染是设定波特率,然后把串口1的数据发给串口2,或者把串口2的数据发给串口1

#include <SoftwareSerial.h>

SoftwareSerial mySerial(8, 9); // RX, TX

void setup()

{

Serial.begin(115200);

mySerial.begin(9600);

}

void loop()

{

if (mySerial.available())

Serial.write(mySerial.read());

if (Serial.available())

mySerial.write(Serial.read());

}

实验征象

我们通过电脑的USB串口向Arduino发送“123”,然后再让Arduino把收到的数据原封不动的发往我们的虚拟串口,并打印在屏幕上。

USB串口发送字符串“123”。

虚拟串口吸收到了字符串“123”

Final

有人会说,一个串口就够用了,何必如此麻烦,然而实际的情形并非如此,比如说我们要用8266WiFi模块,如果把唯一一个宝贵的串口资源给了8266。

那程序不出问题还好,一旦有错,如果不再虚拟出来一对串口,我们都不知道哪里出了问题,以是软串口是我们开拓者必须要节制的。

芯板坊为您供应最全面国内外开拓板资讯、评测、试用信息,包括现今的热门开拓板,如树莓派,Arduino,STM32,OrangePi,Nanop pi,开源硬件等,感兴趣的电子发热友们,可以来免费申请开拓板。

标签:

相关文章