樹莓派4串列埠配置及使用

2021-10-01 14:10:47 字數 1803 閱讀 6177

sudo nano /boot/cmdline.txt

刪除 console=ttyama0,115200 kgdboc=ttyama0,115200

sudo nano /boot/config.txt

最後增加下面兩句話:

dtoverlay=pi3-miniuart-bt

enable_uart=1

sudo apt-get install minicom
minicom -b 9600 -o -d /dev/ttyama0

-b 表示波特率 -d 表示埠號 -o 未知,也可以去掉

int uart_open(int fd,const char *pathname)

/*設定串列埠非阻塞,因為這裡是以非阻塞形式開啟的,所以第三個引數為0*/

if(fcntl(fd,f_setfl,0) < 0)

return fd;

}

// 115200,0,8,'n',1

int uart_set(int fd,int baude,int c_flow,int bits,char parity,int stop)

/*配置波特率*/

switch(baude)

/*設定控制模式*/

options.c_cflag |= clocal;//保證程式不占用串列埠

options.c_cflag |= cread;//保證程式可以從串列埠中讀取資料

/*設定資料流控制*/

switch(c_flow)

/*設定資料位*/

switch(bits)

/*設定校驗位*/

switch(parity)

/*設定停止位*/

switch(stop)

/*設定輸出模式為原始輸出*/

options.c_oflag &= ~opost;//opost:若設定則按定義的輸出處理,否則所有c_oflag失效

/*設定本地模式為原始模式*/

options.c_lflag &= ~(icanon | echo | echoe | isig);

/**icanon:允許規範模式進行輸入處理

*echo:允許輸入字型的本地回顯

*echoe:在接收epase時執行backspace,space,backspace組合

*isig:允許訊號

*//*設定等待時間和最小接收字元*/

options.c_cc[vtime] = 0;

options.c_cc[vmin] = 1;//最少讀取乙個字元

/*如果資料溢位,值接受資料,但是不進行讀操作*/

tcflush(fd,tciflush);

options.c_iflag = 0;

options.c_oflag = 0;

options.c_lflag = 0;

/*配置啟用*/

if(tcsetattr(fd,tcsanow,&options) < 0)

return 0;

}

樹莓派接收配置完成後,如果沒有 options.c_iflag = 0; options.c_oflag = 0; options.c_lflag = 0;這三行**,會導致資料接收不穩定

int uart_close(int fd)

使用linux介面函式read和write函式就可以實現串列埠的讀寫

樹莓派串列埠配置及除錯

修改cinfig.txt檔案 sudo vim boot config.txt 確保enable uart 1 串列埠使用ttys0 dtoverlay pi4 miniuart bt 失能串列埠dtoverlay pi3 disable bt 檢視串列埠對映關係 ls l dev 可以看到串列埠s...

樹莓派3 串列埠設定指令碼

專案中使用樹莓派 3b 外加 zigbee 晶元實現裝置與裝置之間的通訊,但是最初使用的時候,樹莓派的串列埠總顯示通訊異常。樹莓派3的藍芽與串列埠是衝突的,只能二選一,系統預設選擇的藍芽,現在需要關閉藍芽 參考 樹莓派3 uart 串列埠 不可用的解決方法 4.後將解決方法及專案所需環境設定寫成 b...

樹莓派 串列埠使用

本文參考了 具體步驟如下 1 購買usb 轉ttl串列埠小板和杜邦線,3 sd卡根目錄下overlays 目錄下有乙個 pi3 miniuart bt.dtbo 檔案,參閱 overlays 目錄下 的readme,可以檢視該檔案的資訊。提示我們 gpio 14 15 被藍芽占用了。修改 根目錄下的...