樹莓派串口通信配置、測試(全程)

一、樹莓派串口配置修改

1.將樹莓派的硬件串口與mini串口默認映射對換

簡單來說:硬件串口由硬件實現,有單獨波特率時鐘源,性能高,可靠,而mini串口要依附CPU內核提供時鐘。因此我們要用硬件串口,但是樹莓派3b的硬件串口默認連接的是藍牙,所以我們要改一下,把藍牙映射到mini串口上,而釋放硬件串口

2.查看並修改串口映射關係

輸入命令
查看

 ls -l /dev

我們要做的是吧,紅框中的映射對調

在這裏插入圖片描述
輸入命令
修改

sudo vim /boot/config.txt

在該文件中加一行代碼 dtoverlay=pi3-miniuart-bt
在這裏插入圖片描述
保存退出重啓!
然後我們再次查看 命令行 ls -l /dev 此時兩個都有了並且對調了

在這裏插入圖片描述
可以看出,硬件串口(ttyAMA0)映射到了GPIO Tx(14) Rx(15) 引腳上。

3.禁用串口的控制檯功能。

前面步驟已經交換了硬件串口與mini串口的映射關係,但是,現在還不能使用樹莓派串口模塊與電腦進行通信,因爲,樹莓派io口引出串口默認是用來做控制檯使用的,即是爲了用串口控制樹莓派,而不是通信。所以我們要禁用此默認設置。

兩個命令

sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service

然後命令

sudo vim /boot/cmdline.txt

刪除語句 console=serial0,115200

然後重啓樹莓派,
至此,串口配置相關內容結束

二、下載安裝wiringPi庫

1、wiringPi簡介

wiringPi,安裝好這個庫後可以直接調用函數配置和控制GPIO功能

在這裏插入圖片描述
在這裏插入圖片描述

二、wiringPi安裝

網上有好多種方法,不過試了試好多現在用不了
最後終於找到一種方法

有個前提
需要安裝這幾個庫: i2c-tools,libi2c-dev ,python-smbus
不然後面編譯過程會報錯
執行命令 sudo apt-get install libi2c-dev ,會自動安裝這三個

sudo apt-get install libi2c-dev

繼續執行

mkdir temp
cd temp
wget http://project-downloads.drogon.net/files/wiringPi.tgz
tar xf wiringPi.tgz
cd wiringPi/wiringPi/
make
make install

測試

gpio -v

在這裏插入圖片描述
出現這個就是安裝成功了

三、串口通信測試

需要準備一個usb轉TTL

usb轉TTL的RXD接到樹莓派的TXD
usb轉TTL的TXD接到樹莓派的RXD

建立一個chuankou.c文件

#include <stdio.h>
#include <wiringPi.h>
#include <wiringSerial.h>
 
int main()
{
	int fd;
	if(wiringPiSetup()<0) {
        return 1;
    }
 
	if((fd=serialOpen("/dev/ttyAMA0",115200))<0) {
        return 1;
    }
 
	printf("serial test start ...\n");
	serialPrintf(fd,"hello world!!\n");
 
	serialClose(fd);
	return 0;
}

編譯命令:

gcc chuankou.c -o chuankou -lwiringPi
./chuankou

樹莓派端
在這裏插入圖片描述
PC端的串口助手
在這裏插入圖片描述
成功!!!!!

若報錯
報錯 找不到wiringpi.h文件
1、進入wiringPi/wiringPi 目錄 , 即安裝的文件夾內

2、# ls //查看文件 你會發現有一個 wiringPi.h 的頭文件

3、#sudo cp wiringPi.h /usr/include //拷貝頭文件

注意! 源文件的頭文件名爲 wiringPi.h 而 代碼中包含的頭文件名爲 wiringpi.h ,雖然只是一個大小寫區別,但是測試發現還是找不到!

內容參考以下博主:
https://blog.csdn.net/qq_33140565/article/details/78146366

https://www.jianshu.com/p/4797309f3f94

https://blog.csdn.net/scottly1/article/details/26881571?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

https://blog.csdn.net/qq_36326623/article/details/79780061?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158959569619725211916423%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.57693%2522%257D&request_id=158959569619725211916423&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-1-79780061.nonecase&utm_term=%E6%A0%91%E8%8E%93%E6%B4%BE%E4%B8%8E%E7%94%B5%E8%84%91%E4%B8%B2%E5%8F%A3%E9%80%9A%E4%BF%A1

https://blog.csdn.net/zz531987464/article/details/83188189?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%A0%91%E8%8E%93%E6%B4%BE%E4%B8%B2%E5%8F%A3%E9%80%9A%E4%BF%A1&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-83188189

wiringPi的函數
https://www.cnblogs.com/lulipro/p/5992172.html

wiringPi的串口通信程序
https://www.cnblogs.com/regan-gao/articles/9780690.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章