新聞中心
Python如何進(jìn)行多串口通信?一個(gè)串口控制電機(jī) 一個(gè)串口采集數(shù)據(jù)?
下載 pyserial包
創(chuàng)新互聯(lián)公司是一家專(zhuān)注于成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),錦屏網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:錦屏等地區(qū)。錦屏做網(wǎng)站價(jià)格咨詢(xún):13518219792
def OpenCom(self,*args): #設(shè)置端口和波特率 selComPort =‘com2’ #波特率 selBaudRate =9600 #奇偶校驗(yàn) selParity = 'N' try: if(not self.mySerial): self.mySerial = serial.Serial(port=selComPort, baudrate=selBaudRate,bytesize=8,parity=selParity,stopbits=1,timeout=5) else: if(self.mySerial.isOpen()): self.mySerial.close() self.mySerial = serial.Serial(port=selComPort, baudrate=selBaudRate, bytesize=8, parity=selParity, stopbits=1, timeout=5) self.lblInfo['text'] = '打開(kāi)成功!' except Exception as ex: self.lblInfo['text'] = '打開(kāi)失?。?
#使用com口發(fā)送modbus協(xié)議給終端設(shè)備。
def btnEmId_Click(self):
barray = bytearray([0x05, 0x03, 0xA#, 0x54, 0x00, 0x08])
vOldEmId = self.txbOldEmId.get()
vNewEmId = self.txbNewEmId.get()
barray[0] = int(vOldEmId)
barray[5] = int(vNewEmId)
#crc校驗(yàn)
strInput = utils.crc16_append(barray)
print(barray)
n = self.mySerial.write(barray)
if(n 0):
str = self.mySerial.readall()
self.lblInfo['text'] = 'success!'
# for s in str:
# print (hex(s))
else:
self.lblInfo['text'] = 'error!'
python的串口close()函數(shù)關(guān)閉不成功
用ser.isOpen()查看返回False,說(shuō)明ser.close()起作用了啊。用管理員身份打開(kāi)cmd,再執(zhí)行腳本試試?
python對(duì)串口藍(lán)牙模塊的操作
python提供了豐富的module 對(duì)串口的操作同樣有對(duì)應(yīng)的module:serial
環(huán)境:python3.5 藍(lán)牙模塊:HC-05 波特率38400
首先導(dǎo)入serial模塊(通過(guò)pip install serial 安裝)
獲取串口ser 通過(guò)serial.Serial(地址,波特率,超時(shí)時(shí)間)
創(chuàng)建線程監(jiān)聽(tīng)串口數(shù)據(jù)
使用 ser.in_waiting() 獲知數(shù)據(jù)量 這個(gè)函數(shù)返回當(dāng)前串口收到的數(shù)據(jù)長(zhǎng)度
收取數(shù)據(jù)后進(jìn)行詳細(xì)操作
如何用python寫(xiě)個(gè)串口通信的程序
使用 pyserial 就可以處理串口通信,這個(gè)包是跨平臺(tái)的。
示例程序在這里:
import?serial
#?創(chuàng)建serial實(shí)例
serialport?=?serial.Serial()
serialport.port?=?'COM1'
serialport.baudrate?=?9600
serialport.parity?=?'N'
serialport.bytesize?=?8
serialport.stopbits?=?1
serialport.timeout?=?0.6
try:
serialport.open()
serialport.setDTR(True)
serialport.setRTS(True)
except?Exception,?ex:
print?ex
#?發(fā)送數(shù)據(jù)
serialport.write(raw_data)
#?根據(jù)項(xiàng)目要求,可以開(kāi)一個(gè)線程掃描接收數(shù)據(jù)
網(wǎng)站欄目:python串口函數(shù) python串口控制
文章URL:http://fisionsoft.com.cn/article/dogdcip.html