另一個(gè)線程完全可以運(yùn)行,是否運(yùn)行決定權(quán)在你。 如果另一個(gè)線程需要等待串口的數(shù)據(jù),那么它應(yīng)該調(diào)用wait來(lái)等待信號(hào)量 讀取串口數(shù)據(jù)的線程應(yīng)該在讀取完成后通知等待在信號(hào)量上的線程,以繼續(xù)運(yùn)行。
成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站建設(shè)、成都做網(wǎng)站與策劃設(shè)計(jì),榆陽(yáng)網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:榆陽(yáng)等地區(qū)。榆陽(yáng)做網(wǎng)站價(jià)格咨詢:18980820575
@ toc
可在控制臺(tái)輸入
也可以用stty設(shè)置串口參數(shù)
使用后相當(dāng)于串口回傳,發(fā)什么回什么
發(fā)送數(shù)據(jù)
可以對(duì)串口發(fā)送數(shù)據(jù)比如對(duì)com1口
一般情況下串口的名稱全部在dev下面,如果你沒(méi)有外插串口卡的話默認(rèn)是dev下的ttyS* ,一般ttyS0對(duì)應(yīng)com1,ttyS1對(duì)應(yīng)com2,當(dāng)然也不一定是必然的;
如果有ttyS設(shè)備,再看/dev/有沒(méi)有ttyS*,如沒(méi)有就建立一個(gè):
如果板子的設(shè)備中沒(méi)有標(biāo)準(zhǔn)串口設(shè)備ttyS0,也沒(méi)有ttySAC0。/dev下應(yīng)該有一個(gè)USB串口:/dev/ttyUSB0.
當(dāng)一個(gè)串行卡或數(shù)據(jù)卡被偵測(cè)到時(shí),它會(huì)被指定成為第一個(gè)可用的串行設(shè)備。通常是/dev/ttyS1(cua1)或/dev/ttyS2(cua2),這完成看原已內(nèi)建的串口數(shù)目。ttyS*設(shè)備會(huì)被報(bào)告在/var/run/stab內(nèi)。
PC上的串口一般是ttyS,板子上Linux的串口一般叫做ttySAC
可能是linux下的串口設(shè)備沒(méi)有打開,需要改變串口設(shè)備
的權(quán)限,或者根據(jù)文章頭添加用戶到組處理
可以通過(guò)以下命令 查看 板子上的硬件端口的內(nèi)核設(shè)備名
該條命令會(huì)將 ttyUSB0所對(duì)應(yīng)的硬件端口的kernel設(shè)備名 顯現(xiàn)出來(lái), 得到KERNEL== '1-5.5.4', 而不是之前的ttyUSB0
cmd.sh如下:
./getUSB.py 調(diào)用當(dāng)前路徑下的getUSB.py這個(gè)Python語(yǔ)言,明確此次是哪個(gè),ttyUSB0,或者ttyUSB1掛載在端口3-1.1上
getUSB.py:
完成之后 ,設(shè)置開機(jī)啟動(dòng)cmd.sh(在/etc/rc.local中設(shè)置)則每次開機(jī)之后,會(huì)從/dev/ttydata獲取到固定端口的數(shù)據(jù)
方式一
寫入內(nèi)容如下:
方式二
我的硬件序列號(hào):ATTRS{serial}=="FTSYWCXZ"這個(gè)號(hào)是唯一的
可以通過(guò)/dev/usb_0打開串口設(shè)備
常用的匹配類型:
1、查看串口是否可用,可以對(duì)串口發(fā)送數(shù)據(jù)比如對(duì)com1口,echo lyjie126 /dev/ttyS0
2、查看串口名稱使用 ls -l /dev/ttyS* 一般情況下串口的名稱全部在dev下面,如果你沒(méi)有外插串口卡的話默認(rèn)是dev下的ttyS* ,一般ttyS0對(duì)應(yīng)com1,ttyS1對(duì)應(yīng)com2,當(dāng)然也不一定是必然的;
3、查看串口驅(qū)動(dòng):cat /proc/tty/drivers/serial
4、查看串口設(shè)備:dmesg | grep ttyS*
擴(kuò)展資料
接口劃分標(biāo)準(zhǔn)
同步串行接口(英文:SynchronousSerialInterface,SSI)是一種常用的工業(yè)用通信接口。。
異步串行是指UART(Universal Asynchronous Receiver/Transmitter),通用異步接收/發(fā)送。UART是一個(gè)并行輸入成為串行輸出的芯片,通常集成在主板上。UART包含TTL電平的串口和RS232電平的串口。 TTL電平是3.3V的,而RS232是負(fù)邏輯電平,它定義+5~+12V為低電平,而-12~-5V為高電平,MDS2710、MDS SD4、EL805等是RS232接口,EL806有TTL接口。
串行接口按電氣標(biāo)準(zhǔn)及協(xié)議來(lái)分包括RS-232-C、RS-422、RS485等。RS-232-C、RS-422與RS-485標(biāo)準(zhǔn)只對(duì)接口的電氣特性做出規(guī)定,不涉及接插件、電纜或協(xié)議。
參考資料:百度百科-串口
1、接受數(shù)據(jù)一般是阻塞,就是沒(méi)有接收到數(shù)據(jù)就一直等待,可以設(shè)置為不阻塞,這樣就可以了
2、另一種方法是,創(chuàng)建線程,一收、一發(fā),就可以互不影響