溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python 實(shí)現(xiàn)Serial 與STM32J進(jìn)行串口通訊

發(fā)布時(shí)間:2020-10-19 07:37:02 來(lái)源:腳本之家 閱讀:147 作者:freedom098 欄目:開(kāi)發(fā)技術(shù)

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è)參考,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI