日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

openmv串口数据 串口助手_第三课使用pyserial来接收和发送串口数据

發(fā)布時間:2025/3/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 openmv串口数据 串口助手_第三课使用pyserial来接收和发送串口数据 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、python的庫非常多,功能同樣十分強(qiáng)大,在現(xiàn)有的庫的情況下,我們沒有必要去重復(fù)造輪子,拿來用就可以了,在這里我選了pyserial庫。

安裝pyserial,使用pip工具,在cmd界面輸入:pip install pyserial,等待安裝完畢:

我們查看下pyserial的文檔https://pythonhosted.org/pyserial/,我們要實(shí)現(xiàn)一個簡單的串口助手功能,那我們串口組件部分需要的功能:

1)、可以搜索PC自帶的串口;

2)、可以配置串口;

3)、可以打開關(guān)閉串口;

4)、可以發(fā)送以及接收數(shù)據(jù);

5)、數(shù)據(jù)的格式可以以16進(jìn)制或者utf-8來顯示。

如此,我們來先實(shí)現(xiàn)搜索本地串口,查看pyserial的文檔:

使用serial.tools.list_ports來搜索串口,新建com.py,敲入代碼:

#coding:utf-8

import serial

import serial.tools.list_ports

def Get_ports():

clist=[]

port_list = list(serial.tools.list_ports.comports())

if len(port_list)> 0:

clist=[]

for e in port_list:

port_list_0 =list(e)

port_serial = port_list_0[0]

clist.append(port_serial)

print(clist)

Get_ports()

運(yùn)行代碼:

可以看到搜索到了串口1,我的電腦自帶了一個串口。

接著我們來設(shè)置串口,包括串口名,波特率,數(shù)據(jù)位、停止位以及校驗(yàn)位。

try:

com.port = comname

com.baudrate = 115200

com.bytesize = 8

com.stopbits = 1

com.parity = serial.PARITY_NONE

com.open()

except Exception as e:

print(e)

設(shè)置完畢后直接打開,打開完了串口還必須有一個關(guān)閉串口的功能:

if com.isOpen():

com.close()

print("串口關(guān)閉")

代碼已經(jīng)有了,怎么集成到我們的串口界面中去,我們將串口操作這部分做成一個類來直接調(diào)用就可以了。

寫成一個類:

#coding:utf-8

import serial

import serial.tools.list_ports

class opencom():

def __init__(self):

self.com=serial.Serial()

def initcom(self,comname):

try:

self.com.port = comname

self.com.baudrate = 115200

self.com.bytesize = 8

self.com.stopbits = 1

self.com.parity = serial.PARITY_NONE

except Exception as e:

print(e)

def opencom(self):

try:

self.com.open()

except Exception as e:

print(e)

return self.com.isOpen()

def CloseCom(self):

if self.com.isOpen():

self.com.close()

print("串口關(guān)閉")

def Get_ports(self):

clist=[]

port_list = list(serial.tools.list_ports.comports())

if len(port_list)> 0:

clist=[]

for e in port_list:

port_list_0 =list(e)

port_serial = port_list_0[0]

clist.append(port_serial)

return clist

敲入調(diào)用代碼:

c1=opencom()

clist=c1.Get_ports()

if len(clist)>0:

comname=clist[0]

c1.initcom(comname)

if c1.opencom():

c1.CloseCom()

在cmd中運(yùn)行:

下節(jié)課我們將代碼與界面來進(jìn)行信號綁定,在我們的丑陋的界面來進(jìn)行操作。

本教程為個人原創(chuàng),如有轉(zhuǎn)載請注明出處,頭條號:python自動化

總結(jié)

以上是生活随笔為你收集整理的openmv串口数据 串口助手_第三课使用pyserial来接收和发送串口数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。