python 讀取串口數(shù)據(jù)的示例
python3 讀取串口數(shù)據(jù) demo
最近在寫一個demo,zigbee串口連接樹莓派,樹莓派使用串口通信接受zigbee穿過來得值。其中我是用的樹莓派是3代B+,zigbee每隔三秒鐘從串口輸出數(shù)據(jù)。
下面是python串口通信,但是不是linux的,是我在windows上寫的測試demo,python版本是3。
python串口讀取數(shù)據(jù)
# TODO 串口讀取數(shù)據(jù)
# Auther wjw
import serial # 導(dǎo)入串口包
import time # 導(dǎo)入時間包
ser = serial.Serial("COM3",115200,timeout = 5) # 開啟com3口,波特率115200,超時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) # 延時0.1秒,免得CPU出問題
if __name__ == '__main__':
main()
上邊的代碼就已經(jīng)實現(xiàn)python串口讀數(shù)了,但大部分還需要寫入。
串口寫入數(shù)據(jù)
其實就是一個write方法,我開了一個線程,在線程里獲取串口出來的數(shù)據(jù),然后一個死循環(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,()) # 開啟線程,執(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)該差不多就這樣!
樹莓派自帶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ù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
在Python的while循環(huán)中使用else以及循環(huán)嵌套的用法
這篇文章主要介紹了在Python的while循環(huán)中使用else以及循環(huán)嵌套的用法,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-10-10
Python實現(xiàn)遍歷子文件夾并將文件復(fù)制到不同的目標(biāo)文件夾
這篇文章主要介紹了如何基于Python語言實現(xiàn)遍歷多個子文件夾,將每一個子文件夾中大量的文件,按照每一個文件的文件名稱的特點復(fù)制到不同的目標(biāo)文件夾中,感興趣的可以了解下2023-08-08
Python導(dǎo)入oracle數(shù)據(jù)的方法
這篇文章主要介紹了Python導(dǎo)入oracle數(shù)據(jù)的方法,涉及Python讀取csv文件信息再插入到Oracle數(shù)據(jù)庫的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
matplotlib之Pyplot模塊繪制三維散點圖使用顏色表示數(shù)值大小
在撰寫論文時常常會用到matplotlib來繪制三維散點圖,下面這篇文章主要給大家介紹了關(guān)于matplotlib之Pyplot模塊繪制三維散點圖使用顏色表示數(shù)值大小的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
opencv python統(tǒng)計及繪制直方圖的方法
這篇文章主要介紹了opencv python統(tǒng)計及繪制直方圖的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
Python Pygame實戰(zhàn)之超級炸彈人游戲的實現(xiàn)
如今的玩家們在無聊的時候會玩些什么游戲呢?王者還是吃雞是最多的選擇。但在80、90年代的時候多是一些很簡單的游戲:《超級瑪麗》、《魂斗羅》等。本文將利用Pygame制作另一個經(jīng)典游戲—炸彈人,感興趣的可以了解一下2022-03-03

