python串口讀取數(shù)據(jù)的實例
python串口讀取數(shù)據(jù)
python庫 serial
初學(xué)者學(xué)習(xí)使用串口接收數(shù)據(jù),serial為python提供的串口通信庫
串口調(diào)試工具
串口調(diào)試工具使用:ssscom(習(xí)小猛版)
使用步驟:
1、連接設(shè)備至電腦,檢查是否識別具有驅(qū)動程序(我的電腦-管理-設(shè)備管理器-端口)
2、打開ssscom,自動識別設(shè)備,左上角點擊通訊端口,選擇使用串口的設(shè)備
3、設(shè)置串口設(shè)置
4、點擊打開串口、接收數(shù)據(jù)
5、觀察接收數(shù)據(jù)可得出通信頻率
注:port為端口號、baud rate為波特率、data bits為數(shù)據(jù)字節(jié),stop bits為停止字節(jié),parity為校驗位
serial庫
1、引入庫 import serial
2、串口常用的屬性
name:設(shè)備名字port:端口baudrate:波特率bytesize:字節(jié)大小parity:校驗位stopbits:停止位timeout:讀超時設(shè)置
3、串口常用的方法
open():打開串口close():關(guān)閉串口inWaiting():返回緩存中的字節(jié)數(shù),搭配time.sleep使用,否則數(shù)據(jù)會沒有進入緩存區(qū)而結(jié)束程序
注:如果需要持續(xù)接收數(shù)據(jù),可設(shè)置一個定時器,反復(fù)調(diào)用接收串口數(shù)據(jù)
編程實例
import serial
import time
serialport = serial.Serial()
serialport.port = 'COM4'
serialport.baudrate = 115200
serialport.bytesize = 8
serialport.parity = serial.PARITY_NONE
serialport.stopbits = 1
serialport.timeout = 0.001
serialport.close()
if not serialport.is_open:
serialport.open()
time.sleep(0.05) #時間設(shè)置參考串口傳輸速率
num = serialport.inWaiting()
if num > 0:
data = serialport.read(num)
print(data)python串口讀取數(shù)據(jù)及下發(fā)數(shù)據(jù)
import sqlite3
import threading
from datetime import datetime
import serial
import time
def dh():
t=threading.Timer(1, run)
t.start()
def run():
dh()
serialport = serial.Serial()
serialport.port = 'COM4'
serialport.baudrate = 115200
serialport.bytesize = 8
serialport.parity = serial.PARITY_NONE
serialport.stopbits = 1
serialport.timeout = 20
serialport.close()
if not serialport.is_open:
serialport.open()
time.sleep(0.5) # 時間設(shè)置參考串口傳輸速率
num = serialport.inWaiting()
if num > 0:
data = serialport.read(num)# 讀取數(shù)據(jù)解析數(shù)據(jù)插入sqlite 數(shù)據(jù)庫
print( data.decode().strip().split(",")[0])
sql = "insert into t_table (code,weight,feedIntake,time)values(?,?,?,?)"
conn = sqlite3.connect("test.db")
c = conn.cursor()
try:
c.execute(sql, data.decode().strip().split(","))
conn.commit()
print("數(shù)據(jù)插入成功")
except Exception as e:
print("數(shù)據(jù)插入失敗", e)
finally:
code = data.decode().strip().split(",")[0]
gg = tuple([code])
#searchcode(gg)
conn.close()
return "數(shù)據(jù)插入成功"
dh()# 串口發(fā)送數(shù)據(jù)
def FeedComposia(a,b,c):
serialport = serial.Serial()
serialport.port = 'COM3'
serialport.baudrate = 115200
serialport.bytesize = 8
serialport.parity = serial.PARITY_NONE
serialport.stopbits = 1
serialport.timeout = 20
serialport.close()
if not serialport.is_open:
serialport.open()
time.sleep(0.5) # 時間設(shè)置參考串口傳輸速率
t=a,b,c #數(shù)據(jù)要轉(zhuǎn)換一下,才能接受
v = json.dumps(t, ensure_ascii=False)
serialport.write(v.encode())
print("a", a)
print("b", b)
return a, b總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Python中串口通信庫pyserial基礎(chǔ)知識
- Python讀取串口數(shù)據(jù)的實現(xiàn)方法
- python讀取串口數(shù)據(jù)有幾種方法
- python serial串口通信示例詳解
- 玩轉(zhuǎn)串口通信:利用pyserial庫,Python打開無限可能
- Python通過串口實現(xiàn)收發(fā)文件
- Python串口通信的接收與發(fā)送的實現(xiàn)
- python實現(xiàn)串口通信的示例代碼
- Python?Serial串口的簡單數(shù)據(jù)收發(fā)方式
- 使用Python玩轉(zhuǎn)串口(基于pySerial問題)
- 使用 Python 列出串口的實現(xiàn)方法
- Python中串口操作的實現(xiàn)示例
相關(guān)文章
Python自動化實現(xiàn)Markdown轉(zhuǎn)HTML的詳細教程
Markdown 憑借其輕量級和易讀性,已經(jīng)成為技術(shù)文檔、博客文章及項目規(guī)范的首選格式,本文將介紹如何基于 Spire.Doc for Python,完成這項格式轉(zhuǎn)換任務(wù),為文檔自動化提供更專業(yè)和高效的支持,下面小編就和大家詳細介紹一下吧2026-04-04
Python數(shù)據(jù)庫格式化輸出文檔的思路與方法
這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)庫格式化輸出文檔的思路與方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
詳解如何在Python中有效調(diào)用JavaScript
JavaScript和Python都是極為流行的編程語言,并在前端開發(fā)和后端開發(fā)領(lǐng)域扮演著重要的角色,那么Python如何更好的契合JavaScript呢,下面就跟隨小編一起學(xué)習(xí)一下吧2024-02-02
Python Numpy數(shù)組擴展repeat和tile使用實例解析
這篇文章主要介紹了Python Numpy數(shù)組擴展repeat和tile使用實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12

