硬汉嵌入式论坛

 找回密码
 立即注册
查看: 600|回复: 0
收起左侧

[ThreadX全家桶] 测试ThreadX GUIX驱动OLED刷新速度

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-11-8 11:57:48 | 显示全部楼层 |阅读模式
测试代码:

V6-2021_GUIX OLED.7z (10.01MB)


测试代码部分:


[C] 纯文本查看 复制代码
/*
*********************************************************************************************************
*        函 数 名: stm32_monochrome_buffer_toggle
*        功能说明: 单色屏绘制,直接做整个屏的重绘
*        形    参: 无
*        返 回 值: 无
*********************************************************************************************************
*/
static void stm32_monochrome_buffer_toggle(GX_CANVAS *canvas, GX_RECTANGLE *dirty)
{
    uint8_t *p;

    /* 防止警告 */
    (void)canvas;
    (void)dirty;   
    
    /* 获得OLED画布的地址 */
    p = (uint8_t *)display_1_canvas_memory;
    
        HC574_TogglePin(GPIO_PIN_23);
        HC574_TogglePin(GPIO_PIN_22);
    /* 将画布的内容绘制到OLED显存 */
    for (int y= 0; y < 64; y++)
    {
        for (int x = 0; x < 128; x+=8)
        {
            OLED_PutPixel(x, y, (p[16*y + x/8]&(0x80))>>7);
            OLED_PutPixel(x+1, y, (p[16*y + x/8]&(0x40))>>6);
            OLED_PutPixel(x+2, y, (p[16*y + x/8]&(0x20))>>5);
            OLED_PutPixel(x+3, y, (p[16*y + x/8]&(0x10))>>4);
            OLED_PutPixel(x+4, y, (p[16*y + x/8]&(0x08))>>3);
            OLED_PutPixel(x+5, y, (p[16*y + x/8]&(0x04))>>2);
            OLED_PutPixel(x+6, y, (p[16*y + x/8]&(0x02))>>1);
            OLED_PutPixel(x+7, y, (p[16*y + x/8]&(0x01))>>0);
        }
    }
          
    /* 将OLED显存的内容实际绘制到OLED */
        HC574_TogglePin(GPIO_PIN_22);
    OLED_EndDraw();
        
        HC574_TogglePin(GPIO_PIN_23);
}


代码更新到1K的显存时间:

1.png


代码更新到显存+OLED刷新时间:

2.png




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-25 21:40 , Processed in 0.342728 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表