试用 LVGL Pro,一套完整的工具包,助您高效构建、测试、分享和交付 UI!
LVGL
教程

在 STM32F746 Discovery 上使用 MicroPython 和 LVGL

逐步指南,教你如何在 STM32F746 Discovery 开发板上运行 LVGL 的 MicroPython 绑定,包含显示和触摸支持。

加博尔·基什-瓦莫希加博尔·基什-瓦莫希2 分钟阅读

本教程向你展示如何在 STM32F746 Discovery 开发板上开始使用 MicroPython 和 LVGL。你将学习如何构建固件、将其烧录到开发板,以及初始化显示器和触摸屏。

获取 MicroPython#

带有 LVGL 的原始 MicroPython 仓库的分支可在 https://github.com/lvgl/lv_micropython 获得。

使用 git 简单克隆它:

git clone --recurse-submodules https://github.com/micropython/micropython.git
sh

还需要安装这些库:

sudo apt-get install build-essential libreadline-dev libffi-dev git pkg-config python
sh

为 STM32F746 Discovery 构建#

准备 MicroPython 进行交叉编译:

cd lv_micropython
make -C mpy-cross
sh

构建 STM32 移植版本并烧录开发板:

cd ports/stm32
make -j8 BOARD=STM32F7DISC MICROPY_PY_LVGL=1 deploy-stlink
sh

烧录完成后,重置开发板并连接到开发板的串口。这里使用 picocom,但其他应用程序也可以工作。

picocom /dev/ttyACM0 -b 115200
sh

初始化显示器和触摸屏#

当终端处于活动状态时,测试 MicroPython 是否真的在运行。例如,输入 3 + 4,它应该打印结果。

如果一切正常,逐行复制以下内容:

import lvgl as lv
lv.init()
 
import lvstm32 as st
st.lvstm32()
 
import rk043fn48h as rk
rk.init()
 
disp_buf1 = lv.disp_buf_t()
buf1_1 = bytes(480 * 80)
disp_buf1.init(buf1_1, None, len(buf1_1) // 4)
disp_drv = lv.disp_drv_t()
disp_drv.init()
disp_drv.buffer = disp_buf1
disp_drv.flush_cb = rk.flush
disp_drv.hor_res = 480
disp_drv.ver_res = 272
disp_drv.register()
 
indev_drv = lv.indev_drv_t()
indev_drv.init()
indev_drv.type = lv.INDEV_TYPE.POINTER
indev_drv.read_cb = rk.ts_read
indev_drv.register()
python

测试 LVGL#

只需创建一个按钮来查看显示器和触摸是否工作:

btn1 = lv.btn.create(lv.scr_act())
python

关于作者

加博尔·基什-瓦莫希
加博尔·基什-瓦莫希

LVGL 创始人

LVGL 的创始人和首席开发者,这是一个被全球数百万设备使用的开源嵌入式图形库。

认识博客背后的作者们

了解那些分享 LVGL 知识的优秀作者们

查看作者

订阅我们的通讯 不错过任何关于 LVGL 的新闻。我们每月最多发送 2 封邮件。

LVGL

LVGL 是最受欢迎的免费开源嵌入式图形库,支持任何 MCU、MPU 和显示类型,助您构建精美的用户界面。

我们还提供 UI 设计、实现和咨询等服务。

© 2026 LVGL。保留所有权利。
YouTubeGitHubLinkedIn