一、查看本機(jī)串口信息
串口在 /dev 目錄中,查看串口是否在使用,可以用命令
ls -l /dev/ttyS*
一般情況下串口的名稱全部在dev下面,如果你沒(méi)有外插串口卡的話默認(rèn)是dev下的ttyS* ,一般ttyS0對(duì)應(yīng)com1,ttyS1對(duì)應(yīng)com2,當(dāng)然也不一定是必然的;
查看串口設(shè)備:
dmesg | grep ttyS
二、串口調(diào)試軟件
Windows下的串口調(diào)試軟件有好多,Linux下資源相對(duì)較少,不過(guò)也有那么幾個(gè)好用的。
1. minicom
聽(tīng)說(shuō)它功能很強(qiáng)大,但它沒(méi)有UI界面,開(kāi)始用還不太順手。安裝:
sudo apt install minicom
配置:
sudo minicom -s
界面如下圖:
使用方向鍵 選擇 Serial port setup,按Enter鍵,進(jìn)入設(shè)置環(huán)境,如下圖
輸入a或者A,選擇串口設(shè)備,如果的是USB轉(zhuǎn)串口,并且接到了COM1上,將/dev/tty8修改為/dev/ttyUSB0
注意:使用USB轉(zhuǎn)串口,那么串口COM1對(duì)應(yīng)ttyUSB0, COM2對(duì)應(yīng)ttyUSB1;如果沒(méi)有使用USB轉(zhuǎn)串口,而是直接使用串口,那么串口COM1對(duì)應(yīng)ttyS0, COM2對(duì)應(yīng)ttyS1。
配置完串口設(shè)備后,按Enter鍵,再輸入E,配置波特率,按默認(rèn)配置即可 115200 8N1 (波特率:115200,數(shù)據(jù)位:8,奇偶校驗(yàn)位:N 無(wú),停止位:1)。
配置完波特率,按Enter鍵,再輸入F,配置硬件流控,選擇NO
再繼續(xù)配置軟件流控,也選擇NO。都配置完后,按下Enter鍵返回上一界面,選擇save setup as dfl(即將其保存位默認(rèn)配置),再選擇Exit,關(guān)閉minicom。
再次輸入命令 sudo minicom,是剛才的配置生效,可以看到串口輸出信息
注意:非正常關(guān)閉minicom,會(huì)在/var/lock下創(chuàng)建幾個(gè)文件LCK*,這幾個(gè)文件阻止了minicom的運(yùn)行,將它們刪除后即可恢復(fù)
2. CuteCom
這個(gè)就友好點(diǎn),有界面了。和Windows的差不多,可以選擇串口,設(shè)置波特率、數(shù)據(jù)位、停止位等。中間是接收窗口,下面是發(fā)送窗口。安裝:
# 安裝
sudo apt install cutecom
# 啟動(dòng)
sudo cutecom
來(lái)張圖:
3. COMTool
這個(gè)是在github上找到的,由Neucrack Neutree開(kāi)發(fā),用python3開(kāi)發(fā),這里要注意,你電腦沒(méi)有Python3是不能運(yùn)行的。值得注意的是,它支持跨平臺(tái),linux、windows、mac都可以用。github鏈接github有各平臺(tái)的安裝及使用教程。
三、串口權(quán)限問(wèn)題
Linux串口是默認(rèn)普通用戶沒(méi)有讀寫(xiě)權(quán)限的,每次開(kāi)機(jī)后對(duì)串口讀寫(xiě)都要附加權(quán)限
sudo chmod 666 /dev/ttyUSB0
但對(duì)于需要開(kāi)機(jī)自動(dòng)運(yùn)行的程序就很麻煩了,所以可以設(shè)置永久加權(quán)
1.打開(kāi)下面的文件遠(yuǎn)程的話要把gedit換成vi或nano等。
這個(gè)文件本來(lái)是不存在的,只不過(guò)編輯器打開(kāi)不存在的文件會(huì)自動(dòng)創(chuàng)建。
70-usb-serial.rules文件名可以自定義,但必須以.rules結(jié)尾。
sudo gedit /etc/udev/rules.d/70-usb-serial.rules
2.在文件中添加如下內(nèi)容
ttyUSB*表示所有這一格式的串口名,如果你的是ttyS*或其它,按需改。
0666表示加權(quán)模式,和chmod后面的參數(shù)一致,寫(xiě)成666也可以。
vibot_base是我自定義的串口名,就是為ttyUSB*創(chuàng)建一個(gè)超鏈接 ,如下圖。如果你不需要,可以去掉最后一項(xiàng)。
KERNEL=="ttyUSB*", MODE="0666", SYMLINK+="vibot_base"
3.重啟電腦重啟電腦使修改生效。
四、打開(kāi)串口
#usr/bin/python3
# -*- coding: utf-8 -*-
import serial
//打開(kāi)串口0, 9600,8N1,連接超時(shí)0.5秒
ser=serial.Serial("/dev/ttyUSB0",57600,timeout=0.5) #使用USB連接串行口
ser=serial.Serial("/dev/ttyAMA0",57600,timeout=0.5) #使用樹(shù)莓派的GPIO口連接串行口
ser=serial.Serial(1,9600,timeout=0.5)#winsows系統(tǒng)使用com1口連接串行口
ser=serial.Serial("com1",9600,timeout=0.5)#winsows系統(tǒng)使用com1口連接串行口
ser=serial.Serial("/dev/ttyS1",9600,timeout=0.5)#Linux系統(tǒng)使用com1口連接串行口