亚洲 日韩 激情 无码 中出,无码人妻久久一区二区三区蜜桃,亚无码乱人伦一区二区,四虎影视永久免费观看,四虎成人精品一区二区免费网站

Arduino串口不夠用怎么辦?

小編:芯水 更新時(shí)間:2022-08-20 17:08

Arduino UNO R3到底有幾個(gè)串口呢?

如果觀察板子引腳發(fā)現(xiàn),只有一對(duì)串口,但是我們燒錄程序時(shí)使用的也是通過串口傳輸?shù)?,這么說來Arduino應(yīng)該是有兩個(gè)串口的,為了搞明白這個(gè)問題,我特意去Arduino官網(wǎng)查了一下關(guān)于Arduino的原理圖。

Arduino串口不夠用怎么辦?

原理圖如下所示,通過原理圖我們知道,單片機(jī)只有一對(duì)串口,但是最后分兩路出去,一路連在了板子上的排針上;

另外一路通過兩個(gè)發(fā)光二極管連在了一個(gè)叫做atmega的芯片上,程序通過這個(gè)芯片給單片機(jī)燒錄程序。

Arduino串口不夠用怎么辦?

原理圖如下所示,通過原理圖我們知道,單片機(jī)只有一對(duì)串口,但是最后分兩路出去,一路連在了板子上的排針上;

另外一路通過兩個(gè)發(fā)光二極管連在了一個(gè)叫做atmega的芯片上,程序通過這個(gè)芯片給單片機(jī)燒錄程序。

軟串口

但是我們要使用兩個(gè)串口怎么辦呢?不用擔(dān)心,Arduino早已為我們謀劃好了一切,我們把上面Arduino板上標(biāo)注的串口叫做硬串口。

除了硬串口之外,Arduino還為我們?cè)O(shè)計(jì)了一種軟串口,也可以叫做虛擬串口,他是通過程序定義的一組串口,然后映射到Arduino的IO口,這樣我們就可以額外的多出一組串口。

下面我們用軟串口做一組小實(shí)驗(yàn),經(jīng)過串口1向Arduino發(fā)送數(shù)據(jù),Arduino接收到數(shù)據(jù)之后,再把數(shù)據(jù)轉(zhuǎn)送到串口2,并讓其在電腦上打印出來。

程序

上述小實(shí)驗(yàn)的程序如下圖,我們發(fā)現(xiàn)這個(gè)程序與我們平時(shí)所見到的程序所不同的是,第一行多了一句:#include 的語(yǔ)句,我們所使用的軟串口全靠的這一語(yǔ)句。它的作用是將其它數(shù)字、模擬引腳通過程序模擬成串口通信引腳。

SoftwareSerial mySerial(8, 9);的意思是把8引腳定義為RX口,TX定義為TX口。

再下面的程序的作用是設(shè)定波特率,然后把串口1的數(shù)據(jù)發(fā)給串口2,或者把串口2的數(shù)據(jù)發(fā)給串口1

#include

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());

}

實(shí)驗(yàn)現(xiàn)象

我們通過電腦的USB串口向Arduino發(fā)送“123”,然后再讓Arduino把收到的數(shù)據(jù)原封不動(dòng)的發(fā)往我們的虛擬串口,并打印在屏幕上。

USB串口發(fā)送字符串“123”。

Arduino串口不夠用怎么辦?

虛擬串口接收到了字符串“123”

Arduino串口不夠用怎么辦?

Final

有人會(huì)說,一個(gè)串口就夠用了,何必如此麻煩,然而實(shí)際的情況并非如此,比如說我們要用8266WiFi模塊,如果把唯一一個(gè)寶貴的串口資源給了8266。

那程序不出問題還好,一旦有錯(cuò),如果不再虛擬出來一對(duì)串口,我們都不知道哪里出了問題,所以軟串口是我們開發(fā)者必須要掌握的。

芯板坊為您提供最全面國(guó)內(nèi)外開發(fā)板資訊、評(píng)測(cè)、試用信息,包括現(xiàn)今的熱門開發(fā)板,如樹莓派,Arduino,STM32,OrangePi,Nanop pi,開源硬件等,感興趣的電子發(fā)燒友們,可以來免費(fèi)申請(qǐng)開發(fā)板。