樹莓派3B 串列埠使用大全 實現串列埠通訊功能

2021-08-29 10:21:13 字數 2901 閱讀 2208

在2018-10-09-raspbian-stretch.img映象中,要使用串列埠來除錯裝置,需要修改conig.txt檔案。

1.sudo systemctl disable hciuart禁用藍芽裝置

2.sudo nano /boot/config.txt

在該最後加上一行

dtoverlay=pi3-miniuart-bt

3.sudo raspi-config,將系統啟動設定為串列埠自動登入 啟動方式

4.sudo reboot 即可使用串列埠了

樹莓派3b+的硬體電路圖如下:

我們將串列埠模組的tx、rx、gnd連線到樹莓派的uart0 rx、uart0 tx、gnd,電源不用接,即可使用串列埠進行控制

配置這個功能可以讓我們的樹莓派與其他裝置例如stm32進行資料的互動和通訊,實現兩者之間的互相控制功能,這個還是非常實用的!

使用以下步驟即可:

樹莓派包含兩個串列埠

1.硬體串列埠(/dev/ttyama0),硬體串列埠由硬體實現,有單獨的波特率時鐘源,效能高,可靠。一般優先選擇這個使用。

2.mini串列埠(/dev/ttys0),mini串列埠時鐘源是由cpu核心時鐘提供,波特率受到核心時鐘的影響,不穩定。

想要通過樹莓派的gpio引腳進行穩定的串列埠通訊,需要修改串列埠的對映關係。

serial0是gpio引腳對應的串列埠,serial1是藍芽對應的串列埠,可以使用ls -l /dev/serial*檢視當前的對映關係

inte***cing options -> p6 serial, 第乙個選項(would you like a login shell to be accessible  over serial?)選擇no,第二個選項(would you like the serial port hardware to be enabled?)選擇 yes

然後我們可以通過使用ls -l /dev/serial* 檢視串列埠對映關係發現

serial0(gpio串列埠)預設使用的是ttys0(mini串列埠),serial1(藍芽)使用的是ttyama0(硬體串列埠)

如果想使用穩定可靠的硬體串列埠,就要將樹莓派3的硬體串列埠與mini串列埠預設對映對換。而這個需求官方也考慮到了,在系統中放了乙個實現這個功能的檔案---stretch版本系統中的檔案為/boot/overlays/pi3-miniuart-bt.dtbo。使用該檔案發揮功能只需在/boot/config.txt檔案末尾新增一行**

sudo nano /boot/config.txt

在檔案最後面新增一行:dtoverlay=pi3-miniuart-bt

修改完成後sudo reboot重啟樹莓派後使用ls -l /dev/serial*檢視對映如下:

如上圖所示,serial0(gpio串列埠)使用的是ttyama0(硬體串列埠),而serial1(藍芽)使用的是ttys0(mini串列埠)

前面步驟已經交換了硬體串列埠與mini串列埠的對映關係,但是,現在還不能使用樹莓派串列埠模組與電腦進行通訊,因為,樹莓派io口引出串列埠預設是用來做控制台使用的,即是為了用串列埠控制樹莓派,而不是通訊。所以我們要禁用此預設設定。

首先執行命令如下:

sudo systemctl stop [email protected]

sudo systemctl disable [email protected]

然後執行命令列:

sudo nano /boot/cmdline.txt
刪除語句 console=serial0,115200  (沒有的話就不需要此步驟)

儲存之後其內容如下:

接下來再次重啟樹莓派即可。

最終的/boot/config.txt檔案內容如下:

**如下:

#include #include #include int main()

if((fd=serialopen("/dev/ttyama0",115200))<0)

printf("serial test start ...\n");

serialprintf(fd,"hello world!!\n");

serialclose(fd);

return 0;

}

編譯命令:

gcc test.c -o test -lwiringpi
執行:./test  

我們可以將串列埠模組通過杜邦線插到樹莓派的uart0 tx rx接入到pc機,在pc機上開啟串列埠除錯助手檢視 執行上面命令後會列印 hello world 的字串,說明通訊成功。

同理,我們可以在樹莓派上安裝minicom,配置好 /dev/ttyama0 後在串列埠除錯助手上傳送字串,樹莓派minicom串列埠也能收到對應的字串,說明兩者通訊成功

樹莓派3B 的串列埠使用

摘要 我們在使用樹莓派做串列埠開發時,需要深入了解樹莓派的串列埠,具體的參考官方文件見 簡單介紹 樹莓派有兩個內建串列埠,乙個是pl011 uart,乙個是mini uart。這兩個串列埠都由不同的硬體模組實現,所有稍微有些不同,但都是3.3v電壓的串列埠。預設情況下,pl011 uart連線了藍芽...

樹莓派3B在Qt下使用串列埠傳送資料

使用putty的時候神奇的發現樹莓派竟然是支援serial進行操作。試了試,和在ssh下使用沒有多少區別,速度也很快。樹莓派的串列埠主要也就是被這個占用了,配置釋放之後才能使用它來進行串列埠通訊。在命令列裡輸入如下指令 sudo raspi config在如下出現的介面中選擇 5 選擇 p6 ser...

樹莓派3b 學習筆記(三) 無法使用串列埠登入

因此重灌了個系統,但是發現用串列埠登入以後沒有反應,按什麼鍵都不管用,後來發現這個方法 1.開啟sd卡根目錄的 config.txt 檔案,將以下內容新增在最後並且儲存。dtoverlay pi3 miniuart bt這步是為了停止藍芽對串列埠的占用 2.然後再修改根目錄的 cmdline.txt...