python 串口_如何使用Python开发串口通讯上位机(一)
用Python開發串口通訊型上位機,其實并非最優解,本系列更新只為個人學習與總結。如果有C語言底子,嵌入式層面的上位機開發,C++ Builder,C#才是更加好用的利器。
1什么是上位機
從事過嵌入式軟件開發或者工控機開發的,對上位機應該都不陌生。簡單來說,上位機指的是能夠發送指令的計算機或者控制器,通過各類通訊獲取下位機信息,控制下位機的行為等。
最典型的例子,電腦端的串口助手(上位機),通過RS232-DB9或者USB轉串口,與單片機(下位機)的串口通訊,獲取單片機系統的狀態等。
圖片來自百度百科
此系列文章,與大家講講如何使用Python進行串口通訊型上位機的開發。此為第一篇。??
2準備工作
1. 串口調試助手,用于驗證通訊,此處推薦使用Uartassistant,百度一下即可輕松找到下載方法
2. Virtual Serial Port:虛擬串口,可以在沒有實際串口線連接的情況,在電腦端虛擬出對接的兩個串口,方便我們在沒有下位機或者未就緒的情況下,驗證數據的收發,下圖為虛擬出COM1與COM2兩個串口,并內部互聯,打開兩個1中調試助手,分別配置為COM1和COM2,波特率相同,在COM1發送“Hello world”,COM2即可收到
3. Pyqt5:用于開發界面,詳見前面幾期內容
三步學會Python開發上位機并處理excel數據(一)
4. PyCharm:Python IDE
三步學會Python開發上位機并處理excel數據(一)
5. Pyserial庫安裝-pip install pyserial
3Pyserial 初步使用
Pyserial API的使用參見官網:
https://pythonhosted.org/pyserial/pyserial_api.html。
初始化參數:
name:設備名字
port:讀或者寫端口
baudrate:波特率
bytesize:字節大小
parity:校驗位
stopbits:停止位
timeout:讀超時設置
writeTimeout:寫超時
xonxoff:軟件流控
rtscts:硬件流控
dsrdtr:硬件流控
interCharTimeout:字符間隔超時
常用接口
isOpen():查看端口是否被打開。
open() :打開端口‘。
close():關閉端口。
read():從端口讀字節數據。默認1個字節。
read_all():從端口接收全部數據。
write("hello"):向端口寫數據。
readline():讀一行數據。
readlines():讀多行數據。
in_waiting():返回接收緩存中的字節數。
flush():等待所有數據寫出。
flushInput():丟棄接收緩存中的所有數據。
flushOutput():終止當前寫操作,并丟棄發送緩存中的數據。
簡易驗證代碼:
1. 使用虛擬串口,配置COM1與COM2
2. 打開串口助手,配置為COM2,9600后打開
3. Pycharm或者jupyter notebook輸入如下代碼并運行
運行截圖如下:
1. Python打開串口后發送“Python serial port demo!”
2. 另外一端的COM2,手動輸入“Yes”,Python程序接收到后打印出來
4總結
本篇主要介紹了什么是上位機以及Python開發串口通訊型上位機所需的準備工作,并簡單展示了如何進行串口收發。
一個好的上位機還需要更多功能,將會在接下來幾期逐步深入與完善,敬請期待哦。
關注公眾號,獲取更多干貨哦。?作者:跨界程序員Vincent
總結
以上是生活随笔為你收集整理的python 串口_如何使用Python开发串口通讯上位机(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python图像下采样_[Python图
- 下一篇: 长亭php反序列化防护_CTF-攻防世界