v3.8.0¶
v3.8.0 將核心更新至 MicroPython 1.13,將大量輔助函式庫凍結進韌體,新增 Portenta Ethernet(含網路範例)、對 lcd 模組的 HDMI CEC 支援、pyb.CAN 鮑率/取樣點設定,以及一連串 H7 低功耗與 HAL 修正。time / utime 模組已合併,且 F4 pyb.DAC DMA 已停用 — 請閱讀下方的破壞性變更。
重點摘要¶
MicroPython 1.13 — 內建的 MicroPython 核心已更新。
凍結函式庫 —
uasyncio、mqtt、rpc、rtsp、modbus、bno055、pid、ssd1306等現已凍結進韌體。Portenta Ethernet — 乙太網路支援,外加 HTTP / SSL / 點對點範例。
HDMI CEC —
lcd模組中新增的 CEC API(Pure Thermal)。pyb.CAN— 由baudrate/sampling_point關鍵字設定位元時序。破壞性變更:
time/utime模組已合併,且 F4pyb.DACDMA 函式已停用 — 請參閱破壞性變更。
新功能¶
凍結資訊清單 —
uasyncio、mqtt、rpc、rtsp、modbus、bno055、mutex、pid、ssd1306、tb6612及vl53l1x現已凍結進 OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta 的韌體中。Portenta Ethernet — 啟用乙太網路,並提供
http_client、http_client_ssl與peer_to_peer範例。HDMI CEC — 為
lcd模組新增 HDMI CEC API(Pure Thermal)。pyb.CAN— 建構函式 /init()現在會由baudrate與sampling_point關鍵字推導位元時序(手動預分頻器形式仍可使用);CAN 範例也已相應更新。
其他變更與改進¶
REPL 橫幅現在會包含 HAL 版本字串;Audio FFT 範例已更新以配合較新的
ulabAPI。
錯誤修正¶
相機與感測器:
修正 STM32H7 rev Y 裝置上的 OV2640 感測器時脈與 OV5640 PCLK 頻率縮放;透過脈衝 SCL 將 FIR I2C 匯流排從仲裁丟失狀態中復原,並在 F7 軟重置時重試 AMG8833 初始化。
電源與計時器:
修正 H7 低功耗(停止/待命)進入流程 — rev V 的電壓縮放、喚醒時重新啟用振盪器/PLL、具 DRAM 保留的 SDRAM 低功耗、停止進入時停用 Systick,以及僅在除錯建置中啟用 DBGMCU。修正 H7 HAL 更新後的
machine.TimerHAL 狀態,並還原 SD 讀/寫 IRQ 優先順序的變更。
顯示與連線:
修正 F4 SPI LCD 8/16 位元資料大小設定(錯誤的
MCU_SERIES定義),在 WINC1500 SPI 匯流排初始化失敗時回傳錯誤而非默默繼續,並改用靜態 SPI 控制代碼以避免 WINC1500 SPI 匯流排衝突。修正一個 MicroPython GC-collect 錯誤。
系統:
unittests.py在測試被停用或無法使用時不再將整套測試標記為失敗;移除損壞的 Thermopile-shieldcamera_lcd範例。
硬體與開發板支援¶
OpenMV Pure Thermal — 開發板已更新並更名(
OPENMVPURETHERMAL→OPENMVPT),具備 HDMI CEC。OpenMV 2 — 啟用 OV2640 相機驅動程式。
Arduino Portenta H7 — 乙太網路支援。
破壞性 API 變更¶
v3.7.0 與 v3.8.0 之間使用者可見的 API 變更。範圍:modules/ 中的 Python C 模組與 scripts/libraries/ 中的 Python 函式庫。
每項變更都標註了其影響程度:
minor — 範圍狹窄的 API;僅影響有用到它的指令碼。
behavior — API 相同但結果不同;請重新檢查經過調校的指令碼。
變更依影響程度依此順序分組。若您只想移植程式碼,可直接跳至文末的 移植檢查清單。每個 commit 雜湊值都連結至其在 GitHub 上的 diff。
time / utime 模組合併 (minor)¶
time 與 utime 模組已合併,且 OpenMV clock 類別已移至 utime。所有內建範例皆已更新為 import utime / clock = utime.clock()。原本依賴 import time 取得 clock 類別的指令碼應改為 import utime。
Commits: 20587f308
F4 pyb.DAC DMA 函式已停用 (minor)¶
在 F4 系列開發板上,需要 DMA 的 pyb.DAC 函式已停用,因為 F4 的堆積位於 CCM,而 CCM 無法被 DMA 存取。使用 DAC DMA 緩衝區寫入的 F4 指令碼必須避免使用這些函式。
Commits: d61f236f2
MicroPython 更新至 1.13 (behavior)¶
內建的 MicroPython 核心已更新至 1.13。標準函式庫與語言行為皆遵循上游 MicroPython 1.13;請重新檢查依賴特定版本 micropython /標準模組行為的指令碼。
Commits: fb0a5e26d
cpufreq 支援的頻率取決於晶片修訂版本 (behavior)¶
新增了更多 CPU 頻率並使其能感知晶片修訂版本:cpufreq.get_supported_frequencies() 現在會在 H7 上回傳依修訂版本而定的清單(rev X/Y 為 50/100/200/400 MHz,rev V 為 60/120/240/480 MHz)。原本硬寫舊固定清單中頻率的指令碼應在執行階段查詢支援的清單。
Commits: 825dd0742
移植檢查清單¶
要乾淨地移植至 v3.8.0,通常需進行的工作有:
在使用
clock類別之處,將import time改為import utime(time/utime 合併)。針對 1.13 重新驗證依賴特定版本 MicroPython 行為的指令碼(MicroPython 版本升級),並在執行階段查詢
cpufreq.get_supported_frequencies()而非硬寫頻率(cpufreq 變更)。
所有其他指令碼皆可不經修改執行。