zoukankan      html  css  js  c++  java
  • 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.后续上传图片

  • 相关阅读:
    codevs1076 排序
    codevs1075 明明的随机数
    codevs1205 单词翻转
    codevs1204 寻找子串位置
    codevs2235 机票打折
    codevs1206 保留两位小数
    codevs1203 判断浮点数是否相等
    codevs1202 求和
    codevs1201 最小数和最大数
    Static Sushi AtCoder
  • 原文地址:https://www.cnblogs.com/7star/p/14305906.html
Copyright © 2011-2022 走看看