• ART-PI 开发板之


     ART-PI是我见到的最友好的开发板,结合Rt-thread做了一个天气/疫情的OLED显示模块。看到大家都在玩TOUCH-GFX,一时兴起,花90块大洋在某宝上买了个LCD屏。体验了TOUCH-GFX的GUI开发。

                            

    目标:

    1. 使用RTT 软件包驱动 4.3RGB 屏并显示 touchgfx 工程的图片和动画;
    2. 将Touch GFX 工程涉及的资源,生成图片或者文字镜像,存储在SD卡(驱动,挂载SD卡)减少片内内存消耗。
    3. 并使用FAL框架、 SFUD组件驱动SPI QFLASH。对FLASH进行分区,并使能文件系统,在flash中存储LOG文件或者其他文件。
    4. 使用EasyFlash组件, 存储关键键值对信息,起到失电保护作用。
    5. 使用uLOG组件, 配置ULOG组件,并能存储LOG。

    6. 理解MPV模式,实现硬件和屏幕的交互。

    IDE:

    RT-THREAD STUDIO + CubeMX

    注意: 为避免CubeMX 生成的代码覆盖手动添加的代码,建议将手动添加代码放到 /*User code Begin*/  /*User code end*/中。

    1. 使能TouchGFX lib, Using TouchGFX lib
    2. 使能C++,enable C++
    3. 使能CRC/DMA2D

    #define HAL_CRC_MODULE_ENABLED
    #define HAL_DMA2D_MODULE_ENABLED

    4.修改TOUCHGFX 代码,适应 480 X 272分辨率的屏幕。

    //lcd_port.h
    #define LCD_WIDTH 480
    #define LCD_HEIGHT 272
    #define LCD_BITS_PER_PIXEL 16
    #define LCD_BUF_SIZE (LCD_WIDTH * LCD_HEIGHT * LCD_BITS_PER_PIXEL / 8)
    #define LCD_PIXEL_FORMAT RTGRAPHIC_PIXEL_FORMAT_RGB565

    5. 修改触摸部分代码,使其能正确识别触点位置。

    //STM32TouchController.cpp
    x = read_data[0].x_coordinate;
    y = read_data[0].y_coordinate;
    rt_kprintf("down x: %03d y: %03d ", x, y);
    修改RTT 软件包中GT9147驱动一个参数, 来适配这块RGB屏,调了好久才发现这个梗,各家屏幕看来时略有差异,那么软件包驱动该如何适配各种GT9147驱动的RGB屏呢。

    6. 更新 software package, 修改TouchGFX配置信息 application.config/ApplicationTemplate.touchgfx

    7.编译链接生成镜像文件, arm-none-eabi-objcopy -O binary -j ExtFlashSection "${BuildArtifactFileBaseName}.elf" "images.bin"

    8.后续上传图片

  • 相关阅读:
    ubuntu16.04 下安装opencv2.4.9
    ubuntu16.04下CMake学习
    Ubuntu 16.04上用CMake图形界面交叉编译树莓派的OpenCV3.0
    BMP图片的C++水印算法
    OpenCV 2 学习笔记(9): 定义ROI(regions of interest):给图像加入水印
    OpenCV入门教程
    免费、高性能的人脸检测库(二进制)
    DBCP与C3P0数据库连接池
    (android高仿系列)今日头条 --新闻阅读器 (三) 完结 、总结 篇
    hadoop之WordCount源代码分析
  • 原文地址:https://www.cnblogs.com/7star/p/14305906.html
Copyright © 2020-2023  润新知