全场景工业控制第二期-MCU MODBUS TCP MQTT 开发!
全场景工业控制第二期-MCU MODBUS TCP MQTT 开发!
全场景工业控制第一期-MCU MODBUS RTU 开发!
全场景工业控制第一期-MCU MODBUS RTU 开发!
百问网所有单片机开发板汇总页面!
STM32F103
STM32F407
STM32H7R
ESP32S3
R128-S2
7-2_开源项目的移植-lv_100ask_ui
开源项目的移植-lv_100ask_ui
在项目设置中,添加头文件包含:
Middlewares_100ask/lv_100ask_ui/lv_100ask_generic_ui
课后思考
欢迎加入讨论:
社区交流: https://forums.100ask.net
QQ技术交流群(如群满,请加qq:401684796 验证备注:LVGL):962138234
微信交流群:添加微信: baiwenkeji_fae 验证备注:LVGL
仓库地址
Gitee: https://gitee.com...
7-1_开源项目的移植-lv_lib_100ask
开源项目的移植-lv_lib_100ask
基于工程: 6_4_DshanMCU_H7R_Project_LVGL_FreeRTOS_FatFS_FreeType
在项目设置中,添加头文件包含:
Middlewares_100ask/lv_lib_100ask
课后思考
欢迎加入讨论:
社区交流: https://forums.100ask.net
QQ技术交流群(如群满,请加qq:401684796 验证备注:LVGL):962138234
微信交流群:添加微信: baiwenkeji_fae 验...
6-5_让FreeRTOS使用指定的RAM(外部RAM)
让FreeRTOS使用指定的RAM(外部RAM)
让FreeRTOS使用指定的RAM(外部RAM)。
FreeRTOS配置使用 heap_5
然后打开文件:
6_5_DshanMCU_H7R_Project_FreeRTOS_Use_Custom_Memory/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.c
将:
static uint8_t ucHeap[configTOTAL_HEAP_SIZE];
static He...
6-4_适配FreeRTOS+LVGL+FatFS+FreeType
适配FreeRTOS+LVGL+FatFS+FreeType
基于工程: 5_5_DshanMCU_H7R_Project_FreeType
LVGL内置的FreeType测试字体:lvgl/examples/libs/freetype/Lato-Regular.ttf
思源ttf字体:SiYuanRouHei-Medium.zip
技术交流学习
欢迎加入讨论:
社区交流: https://forums.100ask.net
QQ技术交流群(如群满,请加qq:401684796 验证备注:LVGL):...
6-3_适配FreeRTOS+LVGL+FatFS
适配FreeRTOS+LVGL+FatFS
基于工程: 5_4_DshanMCU_H7R_Project_LVGL_Bin_Font
FatFs的可重入问题:
在多任务环境中,可能会因为任务调度导致FatFs的操作函数执行过程中被其他任务抢断,导致相关变量的值会与当前任务处理文件的初始值不匹配,从而导致异常发生。
解决办法:使用 FatFs源码 中的 ffsystem.c
技术交流学习
欢迎加入讨论:
社区交流: https://forums.100ask.net
QQ技术交流群(如群满,请加qq:4...
6-2_LVGL的非线程安全问题
LVGL的非线程安全问题
基于工程: 6_1_DshanMCU_H7R_Project_LVGL_FreeRTOS
线程安全与非线程安全:
线程安全:当一个线程(任务)访问某个数据时,在该线程操作完成之前,其他线程不能访问。确保不出现数据不一致或者数据污染。(多个线程操作同一个对象不会有问题)
非线程安全:不提供数据访问保护,在多个线程先后(尚未完成时就有其他线程进行处理)更改数据时不确保数据一致或不受污染。(多个线程操作同一个对象可能会出现问题)
关于LVGL非线程安全的描述:
https://lv...
6-1_适配FreeRTOS+LVGL
适配FreeRTOS+LVGL
基于工程: 4_8_DshanMCU_H7R_Project_Set_LCD_Backlight
最简单的适配方式
为LVGL提供心跳
TIM定时器
RTOS的任务
vApplicationTickHook
技术交流学习
欢迎加入讨论:
社区交流: https://forums.100ask.net
QQ技术交流群(如群满,请加qq:401684796 验证备注:LVGL):962138234
微信交流群:添加微信: baiwenkeji_fae 验证备注:LVG...
5-5_通过FreeType显示文字
通过FreeType显示文字
字体文件:part1/03_tools/SourceHanSansCN-Bold-2.otf
下载FreeType:https://freetype.org/download.html
适配阅读文档: freetype/docs/INSTALL.ANY
头文件路径包含: Middlewares_100ask/freetype/include
注释freetype/include/freetype/config/ftoption.h中的:
//#define ...
5-4_通过字体BIN文件显示文字
通过字体BIN文件显示文字
字体文件:part1/03_tools/SourceHanSansCN-Bold-2.otf
字体转换工具:https://lvgl.io/tools/fontconverter
第一期3_1_1节
注意:如果要显示中文,需要将代码文件的编码格式设置为 utf-8!
技术交流学习
欢迎加入讨论:
社区交流: https://forums.100ask.net
QQ技术交流群(如群满,请加qq:401684796 验证备注:LVGL):962138234
微信交流群:添加...
5-3_通过LV_FS显示SD卡中的图片文件
通过LV_FS显示SD卡中的图片文件
使用内置的解码库时,无法对BMP和JPG图片进行缩放或旋转。
lvgl库内置的图片素材: lvgl\examples\libs
实验验证参考:
第一期5-2节
技术交流学习
欢迎加入讨论:
社区交流: https://forums.100ask.net
QQ技术交流群(如群满,请加qq:401684796 验证备注:LVGL):962138234
微信交流群:添加微信: baiwenkeji_fae 验证备注:LVGL
文档位置
BMP:https://lvg...
5-2_对接FATFS文件系统到LVGL
对接FATFS文件系统到LVGL(LV_FS)
实验验证参考:
第一期5-1节
lv_fs_test.txt
技术交流学习
欢迎加入讨论:
社区交流: https://forums.100ask.net
QQ技术交流群(如群满,请加qq:401684796 验证备注:LVGL):962138234
微信交流群:添加微信: baiwenkeji_fae 验证备注:LVGL
拓展阅读
https://lvgl.100ask.net/9.2/libs/fs.html
https://lvgl.100as...
4-8_屏幕背光调节
屏幕背光调节
工程参考: DshanMCU_H7R/project/App/DshanMCU_H7R_LVGL_Desktop
硬件资源配置,驱动功能测试
通过滑动条调节亮度
指定时间后无触摸自动降低亮度
技术交流学习
欢迎加入讨论:
社区交流: https://forums.100ask.net
QQ技术交流群(如群满,请加qq:401684796 验证备注:LVGL):962138234
微信交流群:添加微信: baiwenkeji_fae 验证备注:LVGL
4-7_基于无源蜂鸣器为LVGL添加交互反馈音效
基于无源蜂鸣器为LVGL添加交互反馈音效
要确定什么时候加音效?在哪里加?
工程参考: DshanMCU_H7R/project/App/DshanMCU_H7R_LVGL_Desktop
STM32CubeIDE配置时使用代码文件中自定义的宏。
技术交流学习
欢迎加入讨论:
社区交流: https://forums.100ask.net
QQ技术交流群(如群满,请加qq:401684796 验证备注:LVGL):962138234
微信交流群:添加微信: baiwenkeji_fae 验证备注:LV...
4-6_LVGL的设备接口总结
LVGL的输入设备接口总结
把握核心,灵活运用,灵活切换。
https://lvgl.100ask.net/9.2/porting/indev.html
https://lvgl.100ask.net/9.2/overview/indev.html#keys
技术交流学习
欢迎加入讨论:
社区交流: https://forums.100ask.net
QQ技术交流群(如群满,请加qq:401684796 验证备注:LVGL):962138234
微信交流群:添加微信: baiwenkeji_fae 验...
4-5_通过3个按键替代编码器
通过3个按键替代编码器
通过3个按键实现LV_INDEV_TYPE_ENCODER。
使能 STM32H7R 的 IO 外部中断:
/* 阅读文档:
DshanMCU-H7R学习资料\05_硬件资料\03_模块芯片资料\STM32H7R7L8芯片资料\参考手册\rm0477-stm32h7rx7sx-armbased-32bit-mcus-stmicroelectronics.pdf
第8章: 8 System configuration, boot and security (SBS...
4-4_LVGL的输入设备接口-KEYPAD
LVGL的输入设备接口-KEYPAD
通过红外遥控实现LV_INDEV_TYPE_KEYPAD:类似键盘的按键面板,操作UI。
使能 STM32H7R 的 IO 外部中断:
/* 阅读文档:
DshanMCU-H7R学习资料\05_硬件资料\03_模块芯片资料\STM32H7R7L8芯片资料\参考手册\rm0477-stm32h7rx7sx-armbased-32bit-mcus-stmicroelectronics.pdf
第8章: 8 System configuration, b...
4-3_LVGL的输入设备接口-ENCODER
LVGL的输入设备接口-ENCODER
通过旋转编码器实现LV_INDEV_TYPE_ENCODER:编码器,带有左/右转和推动选项,操作UI。。
使能 STM32H7R 的 IO 外部中断:
/* 阅读文档:
DshanMCU-H7R学习资料\05_硬件资料\03_模块芯片资料\STM32H7R7L8芯片资料\参考手册\rm0477-stm32h7rx7sx-armbased-32bit-mcus-stmicroelectronics.pdf
第8章: 8 System co...