硬汉嵌入式论坛

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

[emWin] emwin 字符串函数处理时间过长

[复制链接]

2

主题

1

回帖

7

积分

新手上路

积分
7
发表于 2024-11-21 16:09:57 | 显示全部楼层 |阅读模式
stm32f103VCT6 用的FreeRTOS+Emwin LT7381驱动  目前只开了一个任务 示波器测量这两个断点之间为368ms 为啥三个字符串函数处理需要这么久?请教下各位大佬 该怎么优化
6d52853787a76306b969354027e0dab.jpg
1732176454796.png

现在用的画点函数 1732176523333.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-11-22 10:01:25 | 显示全部楼层
这个时间太长了,如果你用的是RGB565颜色格式,你的底层16bpp的函数优化没。仅这些字符展示不应该这么长时间,是不是绘制字符导致字符所在背景重绘了,这个没优化,时间会比较长
回复

使用道具 举报

2

主题

1

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2024-11-22 13:31:26 | 显示全部楼层
eric2013 发表于 2024-11-22 10:01
这个时间太长了,如果你用的是RGB565颜色格式,你的底层16bpp的函数优化没。仅这些字符展示不应该这么长时 ...

// 画一条彩色的线
void LT738_DrawColorLine(uint16_t usX1 , uint16_t usY1, uint16_t _usWidth, uint16_t *_pColor)
{
        uint16_t i;
        Check_Mem_WR_FIFO_not_Full();
  Goto_Pixel_XY(usX1,usY1);
        LCD_CmdWrite(0x04);
        for (i = 0; i < _usWidth; i++)
        {
                *(vu16*) (LCD_BASE0) = *_pColor++;
        }
        Check_Mem_WR_FIFO_Empty();
}

16pp是这么优化的,上面用的是RGB888格式,我改成565试了一下 没有很明显的缩短时间,请问一下我如果需要固定时间间隔刷新这个区域的数据该怎么处理时间才不会这么长呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-11-23 10:39:31 | 显示全部楼层
Falsegent 发表于 2024-11-22 13:31
// 画一条彩色的线
void LT738_DrawColorLine(uint16_t usX1 , uint16_t usY1, uint16_t _usWidth, uint ...

贴下你的完成测试代码,我看下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 21:42 , Processed in 0.256055 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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