python里面使用serial庫(kù)來(lái)操作串口,serial的使用流程跟平常的類似,也是打開、關(guān)閉、讀、寫
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了江北免費(fèi)建站歡迎大家使用!
一般就是設(shè)置端口,波特率。
使用serial.Serial創(chuàng)建實(shí)體的時(shí)候會(huì)去打開串口,之后可以使用is_open開判斷下是否串口是否打開正常。
使用ser.close即可關(guān)閉串口
數(shù)據(jù)的寫使用ser.write接口,如果寫的是十六進(jìn)制的數(shù)據(jù)使用bytearray來(lái)定義,如 writebuf = bytearray([0x55, 0xaa, 0x00, 0x01, 0x00, 0x00])
讀數(shù)據(jù)使用ser.read接口,一般會(huì)先使用in_waiting來(lái)判斷下是否有數(shù)據(jù),然后開始讀
下面舉一個(gè)例子,說(shuō)明下我們?cè)趯?shí)際的使用情況。
一般會(huì)單獨(dú)創(chuàng)建一個(gè)進(jìn)程來(lái)作為數(shù)據(jù)的接收,然后再配合上標(biāo)記位或者信號(hào)量來(lái)處理邏輯
用ser.isOpen()查看返回False,說(shuō)明ser.close()起作用了啊。用管理員身份打開cmd,再執(zhí)行腳本試試?
python提供了豐富的module 對(duì)串口的操作同樣有對(duì)應(yīng)的module:serial
環(huán)境:python3.5 藍(lán)牙模塊:HC-05 波特率38400
首先導(dǎo)入serial模塊(通過(guò)pip install serial 安裝)
獲取串口ser 通過(guò)serial.Serial(地址,波特率,超時(shí)時(shí)間)
創(chuàng)建線程監(jiān)聽(tīng)串口數(shù)據(jù)
使用 ser.in_waiting() 獲知數(shù)據(jù)量 這個(gè)函數(shù)返回當(dāng)前串口收到的數(shù)據(jù)長(zhǎng)度
收取數(shù)據(jù)后進(jìn)行詳細(xì)操作