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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python 串口_如何使用Python开发串口通讯上位机(一)

發(fā)布時(shí)間:2024/7/5 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 串口_如何使用Python开发串口通讯上位机(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

用Python開發(fā)串口通訊型上位機(jī),其實(shí)并非最優(yōu)解,本系列更新只為個(gè)人學(xué)習(xí)與總結(jié)。如果有C語(yǔ)言底子,嵌入式層面的上位機(jī)開發(fā),C++ Builder,C#才是更加好用的利器。

1

什么是上位機(jī)

從事過嵌入式軟件開發(fā)或者工控機(jī)開發(fā)的,對(duì)上位機(jī)應(yīng)該都不陌生。簡(jiǎn)單來說,上位機(jī)指的是能夠發(fā)送指令的計(jì)算機(jī)或者控制器,通過各類通訊獲取下位機(jī)信息,控制下位機(jī)的行為等。

最典型的例子,電腦端的串口助手(上位機(jī)),通過RS232-DB9或者USB轉(zhuǎn)串口,與單片機(jī)(下位機(jī))的串口通訊,獲取單片機(jī)系統(tǒng)的狀態(tài)等。

圖片來自百度百科

此系列文章,與大家講講如何使用Python進(jìn)行串口通訊型上位機(jī)的開發(fā)。此為第一篇。??

2

準(zhǔn)備工作

1. 串口調(diào)試助手,用于驗(yàn)證通訊,此處推薦使用Uartassistant,百度一下即可輕松找到下載方法

2. Virtual Serial Port:虛擬串口,可以在沒有實(shí)際串口線連接的情況,在電腦端虛擬出對(duì)接的兩個(gè)串口,方便我們?cè)跊]有下位機(jī)或者未就緒的情況下,驗(yàn)證數(shù)據(jù)的收發(fā),下圖為虛擬出COM1與COM2兩個(gè)串口,并內(nèi)部互聯(lián),打開兩個(gè)1中調(diào)試助手,分別配置為COM1和COM2,波特率相同,在COM1發(fā)送“Hello world”,COM2即可收到

3. Pyqt5:用于開發(fā)界面,詳見前面幾期內(nèi)容

三步學(xué)會(huì)Python開發(fā)上位機(jī)并處理excel數(shù)據(jù)(一)

4. PyCharm:Python IDE

三步學(xué)會(huì)Python開發(fā)上位機(jī)并處理excel數(shù)據(jù)(一)

5. Pyserial庫(kù)安裝-pip install pyserial

3

Pyserial 初步使用

Pyserial API的使用參見官網(wǎng):

https://pythonhosted.org/pyserial/pyserial_api.html。

初始化參數(shù):

name:設(shè)備名字
port:讀或者寫端口
baudrate:波特率
bytesize:字節(jié)大小
parity:校驗(yàn)位
stopbits:停止位
timeout:讀超時(shí)設(shè)置
writeTimeout:寫超時(shí)
xonxoff:軟件流控
rtscts:硬件流控
dsrdtr:硬件流控
interCharTimeout:字符間隔超時(shí)

常用接口

isOpen():查看端口是否被打開。
open() :打開端口‘。
close():關(guān)閉端口。
read():從端口讀字節(jié)數(shù)據(jù)。默認(rèn)1個(gè)字節(jié)。
read_all():從端口接收全部數(shù)據(jù)。
write("hello"):向端口寫數(shù)據(jù)。
readline():讀一行數(shù)據(jù)。
readlines():讀多行數(shù)據(jù)。
in_waiting():返回接收緩存中的字節(jié)數(shù)。
flush():等待所有數(shù)據(jù)寫出。
flushInput():丟棄接收緩存中的所有數(shù)據(jù)。
flushOutput():終止當(dāng)前寫操作,并丟棄發(fā)送緩存中的數(shù)據(jù)。

簡(jiǎn)易驗(yàn)證代碼:

1. 使用虛擬串口,配置COM1與COM2

2. 打開串口助手,配置為COM2,9600后打開

3. Pycharm或者jupyter notebook輸入如下代碼并運(yùn)行

運(yùn)行截圖如下:

1. Python打開串口后發(fā)送“Python serial port demo!”

2. 另外一端的COM2,手動(dòng)輸入“Yes”,Python程序接收到后打印出來

4

總結(jié)

本篇主要介紹了什么是上位機(jī)以及Python開發(fā)串口通訊型上位機(jī)所需的準(zhǔn)備工作,并簡(jiǎn)單展示了如何進(jìn)行串口收發(fā)。

一個(gè)好的上位機(jī)還需要更多功能,將會(huì)在接下來幾期逐步深入與完善,敬請(qǐng)期待哦。

關(guān)注公眾號(hào),獲取更多干貨哦。

?作者:跨界程序員Vincent

總結(jié)

以上是生活随笔為你收集整理的python 串口_如何使用Python开发串口通讯上位机(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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