本教程向你展示如何在 STM32F746 Discovery 开发板上开始使用 MicroPython 和 LVGL。你将学习如何构建固件、将其烧录到开发板,以及初始化显示器和触摸屏。
获取 MicroPython#
带有 LVGL 的原始 MicroPython 仓库的分支可在 https://github.com/lvgl/lv_micropython 获得。
使用 git 简单克隆它:
git clone --recurse-submodules https://github.com/micropython/micropython.gitsh还需要安装这些库:
sudo apt-get install build-essential libreadline-dev libffi-dev git pkg-config pythonsh为 STM32F746 Discovery 构建#
准备 MicroPython 进行交叉编译:
cd lv_micropython
make -C mpy-crosssh构建 STM32 移植版本并烧录开发板:
cd ports/stm32
make -j8 BOARD=STM32F7DISC MICROPY_PY_LVGL=1 deploy-stlinksh烧录完成后,重置开发板并连接到开发板的串口。这里使用 picocom,但其他应用程序也可以工作。
picocom /dev/ttyACM0 -b 115200sh初始化显示器和触摸屏#
当终端处于活动状态时,测试 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