溫馨提示×

溫馨提示×

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

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

如何實現(xiàn)Python與STM32通信方式

發(fā)布時間:2021-06-03 10:28:20 來源:億速云 閱讀:1427 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)如何實現(xiàn)Python與STM32通信方式的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

在網(wǎng)上看見python庫pyserial可以實現(xiàn)此功能,便去官網(wǎng)找了一下 ,附上官網(wǎng)pyserial檔鏈 接:https://pyserial.readthedocs.io/en/latest/pyserial.html#overview

首先在windows的CMD命令管理器中安裝pyserial,直接在CMD中鍵入如下字符

pip install pyserial

再將Stm32用USB連接到電腦,打開設(shè)備管理器顯示端口為COM14,然后在python中寫下

import serial
 
#連接串口
serial = serial.Serial('COM14',115200,timeout=2) #連接COM14,波特率位115200
if serial.isOpen():
 print ('串口已打開')
else:
 print ('串口未打開')
 
 
 
#關(guān)閉串口
serial.close()
 
if serial.isOpen():
 print ('串口未關(guān)閉')
else:
 print ('串口已關(guān)閉')

運行后出現(xiàn)下圖,記住在代碼要在最后要用 serial.close() 函數(shù)去關(guān)閉串口,否則下次會打不開串口,會報錯.

如何實現(xiàn)Python與STM32通信方式

之后我們在Stm32的代碼中寫入如下示例代碼,模板來自正點原子的示例代碼:

while(1)
 {
 if (USART_RX_STA&0x8000)
 {
 len = USART_RX_STA&0x3FFF;
 for (t=0;t<len;t++)
 {
 USART_SendData(USART1,USART_RX_BUF[t]);
 while (USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
 }
 USART_RX_STA=0;
 }
 else
 { 
 times++;
 if(times%30==0)LED0=!LED0;//閃爍LED,提示系統(tǒng)正在運行.
 delay_ms(10); 
 }
 }

該32的代碼實現(xiàn)的功能為USART接受數(shù)據(jù)并返還給發(fā)送數(shù)據(jù)方.

在python編譯器中寫下數(shù)據(jù)接收與發(fā)送的完整代碼:

import serial
 
#連接串口
serial = serial.Serial('COM14',115200,timeout=2)
if serial.isOpen():
 print ('串口已打開')
 
 data = b'Beking\r\n' #發(fā)送的數(shù)據(jù)
 serial.write(data)  #串口寫數(shù)據(jù)
 print ('You Send Data:',data)
 
 while True:
 data = serial.read(20) #串口讀20位數(shù)據(jù)
 if data != b'':
 break
 print ('receive data is :',data) 
 
else:
 print ('串口未打開')
 
 
 
#關(guān)閉串口
serial.close()
 
if serial.isOpen():
 print ('串口未關(guān)閉')
else:
 print ('串口已關(guān)閉')

運行結(jié)果為下圖,發(fā)送的數(shù)據(jù)為 b'Beking\r\n' 接收數(shù)據(jù)為 b'Beking' .( 在正點原子的數(shù)據(jù)接受數(shù)據(jù)中要有\(zhòng)r\n字符,否則會接收不到(可以在代碼中更改))

如何實現(xiàn)Python與STM32通信方式

感謝各位的閱讀!關(guān)于“如何實現(xiàn)Python與STM32通信方式”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

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

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI