程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

MicroPython內核開發筆記書內軟件用例 :UART相關實驗

編輯:Python

簡 介: 本文給出了 MicroPython內核開發筆記:書內嵌入實驗任務 中的 UART 部分軟件用例部分內容。

關鍵詞MicroPythonMM32F3277

書稿內容 目 錄
Contents
基礎實驗 測試UART2發送信號 測試UART3接收數據 總 結

 

  • 本書稿內容隸屬於 MicroPython內核開發筆記:書內嵌入實驗任務 中的內容。

 

§01書稿內容


在MM32F3277中存在 八個串口,對應的串口端口為:

UART端口(RX,TX):

UART1:PA10, PA9
UART2:PA3,PA2
UART3:PB11,PB10
UART4:PC11,PC10
UART5:PD2,PC12
UART6:PC7,.PC6
UART7:PE7,PE8
UART8:PD1,PD0

由於第一個串口(UART0)被用於交互界面(REPL),所示留給開發者使用的串口是從 UART2之後的串口。

一、基礎實驗

1、測試UART2發送信號

下面代碼初始化 UART2,波特率為115200,每隔10ms發送 0x55(對應的字符 ‘U’)數據。串口發送數據是通過 write() 函數調用來實現的,每一次發送一個字節。

from machine import Pin,UART
import utime
uart2 = UART(1, 115200)
print('Test UART.')
while True:
_ = uart2.write(b'U')
utime.sleep_ms(10)

利用示波器測試 PA2(TX2)的輸出波形:

▲ 圖1.1.1 PA2(TX2)測量到輸出波形

2、測試UART3接收數據

使用短路子將 RXD3與RXD1連接在一起,也就是將REPL的接收端口RXD1連接在UART3的接收端口。

下面程序顯示了如何判斷串口內接收到了字符,並讀取該字符存儲在內存緩沖區內。當接收到回車字符(0xd)之後,便將接收到的字符串轉換成整數並顯示。

from machine import Pin,UART
import utime
uart2 = UART(2, 115200)
print('Test UART.')
buf = bytes(0)
while True:
if uart2.any():
buf = buf + uart2.read(uart2.any())
if buf[-1] == 13:
print(int(buf))
buf = bytes(0)
utime.sleep_ms(10)

處貼上運行結果如下。 在 Thonny交互界面上輸入數字並回車,程序變輸出對應的數字。如果輸入的字符中包含有非數字字符,最後程序出錯返回。

>> Reset MicroPython...
>> Wait for MicroPython coming back...
>> Download MicroPython : 33 lines/707 characters.
>> -------------------------------------------------------------------------
Test UART.
333
3333
123
Traceback (most recent call last):
File "<stdin>", line 22, in <module>
ValueError: invalid syntax for integer
>>>

 

※ 總 結 ※


本文給出了 MicroPython內核開發筆記:書內嵌入實驗任務 中的 UART 部分軟件用例部分內容。


■ 相關文獻鏈接:

  • MicroPython內核開發筆記:書內嵌入實驗任務

● 相關圖表鏈接:

  • 圖1.1.1 PA2(TX2)測量到輸出波形

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved