您好,登錄后才能下訂單哦!
Python果然是一款非常簡(jiǎn)明的語(yǔ)言,做東西非常流暢,今天又嘗試了一下用Serial做了一個(gè)控制臺(tái)的串口通訊,我用的下位機(jī)是STM32F103,搞了一個(gè)多小時(shí)就成功了,可見(jiàn)Python的能力之強(qiáng)。
說(shuō)明幾點(diǎn)注意,一是Python在windows下的串口號(hào)可以用COM來(lái)標(biāo)注,此時(shí)序號(hào)從1開(kāi)始,如果自己?jiǎn)为?dú)指定序號(hào),則是從0開(kāi)始。
另外,如果下位機(jī)串口通訊設(shè)定的非常簡(jiǎn)單的話(huà),在Python中只需要設(shè)定好串口號(hào)和波特率即可,其余的均設(shè)為默認(rèn)值。一般來(lái)說(shuō)在單片機(jī)或者是嵌入式系統(tǒng)中的串口通訊基本都不需要設(shè)定其余的東西,最多還需要設(shè)定一個(gè)停止位的位數(shù)或者是一幀數(shù)據(jù)多少位,一般都設(shè)定為1位和8位,這也都是Python默認(rèn)好的。
讀取字符串需要注意,向串口發(fā)送一個(gè)字符串,隨后在讀回并在PC機(jī)上顯示出來(lái),需要在發(fā)送時(shí)就要記錄字符串長(zhǎng)度,否則會(huì)阻塞,串口通信將會(huì)失敗。反正我是失敗了很多次。
__author__ = 'freedom' import serial port = 0 ser = serial.Serial() ser.setPort(port) print ser.portstr baudrate = 115200 ser.setBaudrate(baudrate) ser.open() print ser.isOpen() print ser while(1): datainput = raw_input("Please input the character:\n") n = ser.write(datainput) data = ser.read(n) print data
以上這篇Python 實(shí)現(xiàn)Serial 與STM32J進(jìn)行串口通訊就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。