野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植

这篇具有很好参考价值的文章主要介绍了野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘要

  • 基于野火霸道-V2+3.2寸屏的开发板,下载器为STLINK
  • 分为两个版本,FreeRTOS和裸机版本

裸机

裸机准备

  • lvgl v8.2版本的源码
  • 野火的《触摸画板-3.2寸》与《基本定时器》的代码例程
    野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机

移植

  1. 将基本定时器代码移植到触摸画板-3.2寸的例程中,实现LED的正常反转
    野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机
  2. 将lvgl的源码移植到工程里,此处可以参考正点原子的视频
    野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机
  3. 修改lv_port_disp_template文件
    • 实现disp_init函数并将缓冲区方法设置为1或者2,要注意ILI9341_Init函数里扫描方向要设置为3
      野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机
      野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机
    • 实现disp_flush函数,ILI9341_DrawPixel函数需要自己加上,并添加到头文件里
      野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机
  4. 修改lv_port_indev_template文件
    • 注释掉不用的函数,保留触摸相关函数 -野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机

    • 实现touchpad_init,touchpad_is_pressed,touchpad_get_xy函数

    • XPT2046_TouchDetect是内部函数,注意将其在头文件声明野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机文章来源地址https://www.toymoban.com/news/detail-768118.html

  5. 在定时器中断回调函数中,调用lv_tick_inc(1),给LVGL提供时钟源
    野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机
  6. 主函数如图所示
    野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机
  7. Hello world的代码效果是蓝底上显示Hello world,Button的代码效果是有个按键触摸能够滑动
注意
  • 头文件LV_CONF中的LV_MEM_SIZE 这个宏定义请注意大小,我设的25kb,太大可能导致报错No space
  • lv_port_disp_template中的缓冲区, static lv_color_t buf_1[MY_DISP_HOR_RES * 20],20这个数也别太大,大了显示的更快,但也可能报错No space

RTOS

RTOS准备

  • FreeRTOS的触摸画板例程

移植

  • RTOS不再赘述,只需要注意别忘记在SysTick_Handler中调用xPortSysTickHandler
    野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机
  • 完成后,创建任务测试任务调度运行情况,画板是否可以画画,LED灯是否翻转

lvgl移植

  1. 继续移植LVGL源码,与裸机相同
  2. 实现disp和indev文件,与裸机相同
  3. 自定义tick源,LV_TICK_CUSTOM设置为1,不需要定时器中断
    野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机
  4. main文件内容
    野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机
    野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机
注意
  1. FreertosConfig头文件中,也需要申请数组空间,configTOTAL_HEAP_SIZE,我在此设置的15kb
  2. lv_port_disp_template中的缓冲区lv_color_t buf_1,我设置了10行
  3. LV_MEM_SIZE宏定义设置为20kb,这几个参数不合适很容易报错No space
  4. 如果使用的是正点的lv_conf头文件,LV_MEM_ADR记得设置为0
  5. LVGL模板资源
    野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植,单片机

到了这里,关于野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【快速入门 LVGL】-- 1、STM32 工程移植 LVGL

    目录 一、LVGL 简述 二、复制一个STM32工程 三、下载 LVGL 四、裁剪 源文件 五、工程添加 LVGL 文件  六、注册 显示 七、注册 触摸屏 八、LVGL 心跳、任务刷新 九、开跑 LVGL  十、控件的事件添加、响应处理 十 一、几个好玩小事情 十 二、显示中文 丰富且强大的模块化图形组

    2024年04月27日
    浏览(35)
  • lvgl移植流程

    基于梁山派屏幕扩展板mcu屏幕源码Screen_MCU移植 下载lvgl 8.3版本源码下载地址:https://github.com/lvgl/lvgl 参考文档:Set-up a project — LVGL documentation 删除源码中不需要的文件夹,仅保留如下内容 demos : lvgl综合案例 examples :单个功能案例 src : 源代码 lv_conf_template.h : 重要的配置文件

    2024年01月19日
    浏览(29)
  • 【RV1126】移植LVGL

    RV1126文件系统下面没有 /dev/fb0 设备节点: 进入kernel 进入配置: 修改位置一,如下: 修改位置二,如下: 之后重新编译生成固件烧写到开发板。 地址:https://github.com/lvgl/lv_port_linux_frame_buffer git克隆地址:https://github.com/lvgl/lv_port_linux_frame_buffer.git 官方文档:https://blog.lvgl.i

    2024年02月07日
    浏览(49)
  • 第二节 LVGL移植

    确定输入、输出设备 输入:触摸屏、鼠标、键盘以及编码器;输出:显示屏 准备LVGL库、例程 准备V8.2版本的LVGL库文件,还有支持所需功能的例程源码 添加LVGL库到工程 按需裁剪、修改LVGL库文件,并添加到MDK工程中 配置输入、输出设备 适配自己的输入和输出设备,添加所需

    2024年02月06日
    浏览(34)
  • 基于STM32的实时操作系统FreeRTOS移植教程(手动移植)_stm32移植freertos(1)

    直接意识代码: 这是我们大脑最希望的添加代码方式,很显然他是 错的 , 两个任务之间产生了相互的影响 ,使得两个任务都执行错误,这种思想在 裸机开发 中肯定是 错的 ,但是在我们的 RTOS 中他就可以是 对的 。 任务型代码: 这是 独立的两个任务内容 ,我们只需要把

    2024年04月10日
    浏览(109)
  • 【LVGL】学习笔记--(1)Keil中嵌入式系统移植LVGL

    最近emwin用的比较烦躁,同时被LVGL酷炫的界面吸引到了,所以准备换用LVGL试试水。 LVGL(轻量级和通用图形库)是一个免费和开源的图形库,它提供了创建嵌入式GUI所需的一切,具有易于使用的图形元素,美丽的视觉效果和低内存占用。 丰富且强大的模块化图形组件:按钮 (b

    2024年02月02日
    浏览(72)
  • FreeRTOS学习笔记【二】——FreeRTOS 移植

            上一章中我们初步的了解了一下 FreeRTOS,本章就正式踏上 FreeRTOS 的学习之路, 首先 肯定是把 FreeRTOS 移植到我们所使用的平台上, 这里以 ALIENTEK 的 STM32F103 开发板为 例,本章分为如下几部分: 2.1 准备工作 2.2 FreeRTOS 移植 2.3 移植验证实验 2.1.1 准备基础工程   

    2024年02月07日
    浏览(29)
  • STM32移植LVGL(LittleVGL)

    https://lvgl.io/ 这是LVGL的官网, http://lvgl.100ask.org/8.2/intro/index.html 这是lvgl的中文介绍网站。 先通过这两个网站大致了解一下lvgl,在后面移植时会有个大概了解,移植起来会更清晰易懂。 1、准备STM32工程 1、先准备所用到的屏幕的显示和触摸(有触摸功能的屏幕)的工程。我这

    2023年04月16日
    浏览(42)
  • linux(全志)初始环境到移植lvgl

    安装vim: 安装git工具 对于F1C200S,使用的交叉工具链必须高于,使用的交叉工具链必须高于6.0。 本文选择7.2.1进行u-boot和kernel的编译。 官网下载链接:https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz 下载后解压 或右

    2024年02月13日
    浏览(49)
  • stm32 移植 LVGL 基础工程

    注意:这里只是本人的一些学习心得,和对移植的理解,不明白之处还得去跟着官方教程学学! 开发板使用的是 stm32f103zet6 芯片 准备 LVGL 源码 8.3 版本 定时器实验 触摸屏实验(使用 3.5的 屏幕) 1、使用触摸屏实验为主体来配置文件 (1)把触摸屏实验改为 LVGL 移植实验 (

    2024年01月20日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包