python 讀取串口數(shù)據(jù)的示例
python3 讀取串口數(shù)據(jù) demo
最近在寫(xiě)一個(gè)demo,zigbee串口連接樹(shù)莓派,樹(shù)莓派使用串口通信接受zigbee穿過(guò)來(lái)得值。其中我是用的樹(shù)莓派是3代B+,zigbee每隔三秒鐘從串口輸出數(shù)據(jù)。
下面是python串口通信,但是不是linux的,是我在windows上寫(xiě)的測(cè)試demo,python版本是3。
python串口讀取數(shù)據(jù)
# TODO 串口讀取數(shù)據(jù)
# Auther wjw
import serial # 導(dǎo)入串口包
import time # 導(dǎo)入時(shí)間包
ser = serial.Serial("COM3",115200,timeout = 5) # 開(kāi)啟com3口,波特率115200,超時(shí)5
ser.flushInput() # 清空緩沖區(qū)
def main():
while True:
count = ser.inWaiting() # 獲取串口緩沖區(qū)數(shù)據(jù)
if count !=0 :
recv = ser.read(ser.in_waiting).decode("gbk") # 讀出串口數(shù)據(jù),數(shù)據(jù)采用gbk編碼
print(time.time()," --- recv --> ", recv) # 打印一下子
time.sleep(0.1) # 延時(shí)0.1秒,免得CPU出問(wèn)題
if __name__ == '__main__':
main()
上邊的代碼就已經(jīng)實(shí)現(xiàn)python串口讀數(shù)了,但大部分還需要寫(xiě)入。
串口寫(xiě)入數(shù)據(jù)
其實(shí)就是一個(gè)write方法,我開(kāi)了一個(gè)線程,在線程里獲取串口出來(lái)的數(shù)據(jù),然后一個(gè)死循環(huán)每隔一秒發(fā)1,每隔一秒發(fā)0.
import serial
import time
import _thread # 導(dǎo)入線程包
data_ser = serial.Serial("COM3",115200,timeout = 5)
data_ser.flushInput()
def get_data():
while True:
data_count = data_ser.inWaiting()
if data_count !=0 :
recv = data_ser.read(data_ser.in_waiting).decode("gbk")
print(time.time()," --- data_recv --> ", recv)
time.sleep(0.1)
if __name__ == '__main__':
_thread.start_new_thread(get_data,()) # 開(kāi)啟線程,執(zhí)行g(shù)et_data方法
while 1:
time.sleep(20)
data_ser.write(b'1') # 發(fā)送二進(jìn)制1
time.sleep(20)
data_ser.write(b'0') # 發(fā)送二進(jìn)制0
完成了,應(yīng)該差不多就這樣!
樹(shù)莓派自帶python,但是默認(rèn)是python2,可以兩行命令修改默認(rèn)python3
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.4 /usr/bin/python
以上就是python 讀取串口數(shù)據(jù)的示例的詳細(xì)內(nèi)容,更多關(guān)于python 讀取串口數(shù)據(jù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
在Python的while循環(huán)中使用else以及循環(huán)嵌套的用法
這篇文章主要介紹了在Python的while循環(huán)中使用else以及循環(huán)嵌套的用法,是Python入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10
Python實(shí)現(xiàn)遍歷子文件夾并將文件復(fù)制到不同的目標(biāo)文件夾
這篇文章主要介紹了如何基于Python語(yǔ)言實(shí)現(xiàn)遍歷多個(gè)子文件夾,將每一個(gè)子文件夾中大量的文件,按照每一個(gè)文件的文件名稱的特點(diǎn)復(fù)制到不同的目標(biāo)文件夾中,感興趣的可以了解下2023-08-08
Python導(dǎo)入oracle數(shù)據(jù)的方法
這篇文章主要介紹了Python導(dǎo)入oracle數(shù)據(jù)的方法,涉及Python讀取csv文件信息再插入到Oracle數(shù)據(jù)庫(kù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
matplotlib之Pyplot模塊繪制三維散點(diǎn)圖使用顏色表示數(shù)值大小
在撰寫(xiě)論文時(shí)常常會(huì)用到matplotlib來(lái)繪制三維散點(diǎn)圖,下面這篇文章主要給大家介紹了關(guān)于matplotlib之Pyplot模塊繪制三維散點(diǎn)圖使用顏色表示數(shù)值大小的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
opencv python統(tǒng)計(jì)及繪制直方圖的方法
這篇文章主要介紹了opencv python統(tǒng)計(jì)及繪制直方圖的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Python Pygame實(shí)戰(zhàn)之超級(jí)炸彈人游戲的實(shí)現(xiàn)
如今的玩家們?cè)跓o(wú)聊的時(shí)候會(huì)玩些什么游戲呢?王者還是吃雞是最多的選擇。但在80、90年代的時(shí)候多是一些很簡(jiǎn)單的游戲:《超級(jí)瑪麗》、《魂斗羅》等。本文將利用Pygame制作另一個(gè)經(jīng)典游戲—炸彈人,感興趣的可以了解一下2022-03-03

