硬汉嵌入式论坛

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

[LTDC] 有办法用H7内部的ram可以把1024*600的屏跑起来不?

  [复制链接]

10

主题

45

回帖

75

积分

初级会员

积分
75
发表于 2026-4-7 20:21:29 | 显示全部楼层 |阅读模式
求教,如题。不想外扩ram。豆包说能用行缓存或者半屏缓存搞,不知道是不是胡说八道的。用emwin。
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
123007
QQ
发表于 2026-4-8 07:49:03 | 显示全部楼层
没问题,使用H7B0就可以,这个有1.4MB空间,有连续的1MB容量,你可以使用8位色实现。使用8位色,仅需600KB显存容量就行。
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2026-4-8 09:49:50 | 显示全部楼层
eric2013 发表于 2026-4-8 07:49
没问题,使用H7B0就可以,这个有1.4MB空间,有连续的1MB容量,你可以使用8位色实现。使用8位色,仅需600KB ...

还是想用rgb888的色彩或者至少565,H750可以实现不?我现在测试下来,一运行GUI_Init就进错误中断,设置了150K的GUI_NUMBYTES。
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2026-4-8 10:02:28 | 显示全部楼层
eric2013 发表于 2026-4-8 07:49
没问题,使用H7B0就可以,这个有1.4MB空间,有连续的1MB容量,你可以使用8位色实现。使用8位色,仅需600KB ...

豆包说的一行一行缓存或者半屏一缓存,emwin是有这个功能的,还是豆包胡说的啊?
回复

使用道具 举报

734

主题

3884

回帖

6111

积分

论坛元老

自定义头衔

积分
6111
发表于 2026-4-8 11:07:34 | 显示全部楼层
kuyu20 发表于 2026-4-8 10:02
豆包说的一行一行缓存或者半屏一缓存,emwin是有这个功能的,还是豆包胡说的啊?

一行一行缓存是可以的,只是速度慢吧,
回复

使用道具 举报

5

主题

335

回帖

350

积分

高级会员

积分
350
发表于 2026-4-8 14:24:35 | 显示全部楼层
如果是LTDC驱动1024*600的RGB屏跑不了,需要1.2MB的显存,h750内部ram比较碎,最大的一块只有512KB,装不下
如果用FMC跑8080并口的话就没问题,只需要注意数据命令切换线不被数据传输影响就行,比如1024*600 屏的连续数据访问空间是0x12c00,并口的数据命令切换引脚大于这个地址就行
回复

使用道具 举报

4

主题

487

回帖

499

积分

金牌会员

积分
499
发表于 2026-4-8 17:19:22 | 显示全部楼层
kuyu20 发表于 2026-4-8 09:49
还是想用rgb888的色彩或者至少565,H750可以实现不?我现在测试下来,一运行GUI_Init就进错误中断,设置 ...

LTDC的888 565别想了,考虑单字节的吧 600k ram就行。不然只能换mcu屏,rgb屏不可能的。
关键代码
pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
#define LTDC_PIXEL_FORMAT_L8                0x00000005U   /*!< L8 LTDC pixel format                   */
#define LTDC_PIXEL_FORMAT_AL44            0x00000006U   /*!< AL44 LTDC pixel format                 */
#define LTDC_PIXEL_FORMAT_AL88            0x00000007U   /*!< AL88 LTDC pixel format                 */
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2026-4-8 17:55:01 | 显示全部楼层
DX3906 发表于 2026-4-8 14:24
如果是LTDC驱动1024*600的RGB屏跑不了,需要1.2MB的显存,h750内部ram比较碎,最大的一块只有512KB,装不下 ...

是用LTDC,我知道正常是不够,不知道有没有其它办法,比如豆包说的,半屏或1/4屏一缓存,有这样的功能没?
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2026-4-8 17:57:16 | 显示全部楼层
cctv180 发表于 2026-4-8 17:19
LTDC的888 565别想了,考虑单字节的吧 600k ram就行。不然只能换mcu屏,rgb屏不可能的。
关键代码
pLay ...

ltdc只能整个屏幕一起操作吗?能不能把分区域刷新显示啊,这样的话,如果可以,不在意速度的情况下,可以用无限小的ram啦。
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2026-4-8 18:31:40 | 显示全部楼层
C:\Users\ligo\Desktop\微信图片_20260408183026.pngC:\Users\ligo\Desktop\微信图片_20260408183035.png
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2026-4-8 18:32:18 | 显示全部楼层
C:\Users\ligo\Desktop\微信图片_20260408183035.pngC:\Users\ligo\Desktop\微信图片_20260408183026.png
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2026-4-8 18:35:22 | 显示全部楼层
还有个想不通的问题,现在已经用RGB565已经能正常显示了,我切换成用L8,居然也会进错误中断。换RGB888不行我还能理解,怎么向下换,也不行呢。是别的地方也要改吗?
微信图片_20260408183035.png
微信图片_20260408183026.png
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2026-4-8 21:48:02 | 显示全部楼层

上传图片错误,版主帮忙删除这两个回复啊
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2026-4-8 21:48:42 | 显示全部楼层

上传图片错误,版主帮忙删除这两个回复啊
回复

使用道具 举报

5

主题

335

回帖

350

积分

高级会员

积分
350
发表于 2026-4-12 18:42:25 | 显示全部楼层
kuyu20 发表于 2026-4-8 17:57
ltdc只能整个屏幕一起操作吗?能不能把分区域刷新显示啊,这样的话,如果可以,不在意速度的情况下,可以 ...

做不到的,你显存开多大,屏幕就显示多大,比如你lcd_buf[800*480],屏幕上就只会显示800*480的区域,其余部分是黑的,如果用同一个buf显示其他范围,那原本800*480的地方又会变成黑的
ltdc是一定需要等于分辨率的ram空间,不然显示都会有问题
回复

使用道具 举报

5

主题

335

回帖

350

积分

高级会员

积分
350
发表于 2026-4-12 18:44:26 | 显示全部楼层
豆包肯定理解成GUI的刷新缓冲区了,类似lvgl那样确实可以小于屏幕分辨率,但那是ui层面的东西了
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2026-4-12 21:21:37 | 显示全部楼层
DX3906 发表于 2026-4-12 18:42
做不到的,你显存开多大,屏幕就显示多大,比如你lcd_buf[800*480],屏幕上就只会显示800*480的区域,其 ...

解释的很清楚,谢谢谢谢
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2026-4-27 15:35:34 | 显示全部楼层
cctv180 发表于 2026-4-8 17:19
LTDC的888 565别想了,考虑单字节的吧 600k ram就行。不然只能换mcu屏,rgb屏不可能的。
关键代码
pLay ...

你好,能不能帮我设置一下,愿意付辛苦费。我试了一下,没搞定。RGB888的能正常显示的,用的H7的芯片。
回复

使用道具 举报

12

主题

72

回帖

108

积分

初级会员

积分
108
发表于 2026-4-27 18:15:43 | 显示全部楼层
kuyu20 发表于 2026-4-27 15:35
你好,能不能帮我设置一下,愿意付辛苦费。我试了一下,没搞定。RGB888的能正常显示的,用的H7的芯片。

原来用过F767芯片跑1024.不知道f767芯片跟你的芯片有没有区别。
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2026-4-27 20:12:11 | 显示全部楼层
Ainit 发表于 2026-4-27 18:15
原来用过F767芯片跑1024.不知道f767芯片跟你的芯片有没有区别。

F767我看才512K的ram,是怎么做到的?是驱动的1024*600分辨率的RGB的屏吗?
回复

使用道具 举报

12

主题

72

回帖

108

积分

初级会员

积分
108
发表于 2026-4-28 08:31:18 | 显示全部楼层
kuyu20 发表于 2026-4-27 20:12
F767我看才512K的ram,是怎么做到的?是驱动的1024*600分辨率的RGB的屏吗?

时间过得挺久了,一些细节我不太记得了。我找找看还能不能找到当时的资料。找到了我发给你参考一下
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2026-4-30 10:04:52 | 显示全部楼层
Ainit 发表于 2026-4-28 08:31
时间过得挺久了,一些细节我不太记得了。我找找看还能不能找到当时的资料。找到了我发给你参考一下

好的,谢谢。如果找不到,有空的话可以帮我研究一下,我付点辛苦费。
回复

使用道具 举报

12

主题

72

回帖

108

积分

初级会员

积分
108
发表于 2026-5-1 10:39:10 | 显示全部楼层
kuyu20 发表于 2026-4-30 10:04
好的,谢谢。如果找不到,有空的话可以帮我研究一下,我付点辛苦费。

兄弟,不好意思,我这边记错了。用F767驱动的RGB屏幕也是用到了外置内存空间存储图片资源。
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2026-5-1 12:06:08 | 显示全部楼层
Ainit 发表于 2026-5-1 10:39
兄弟,不好意思,我这边记错了。用F767驱动的RGB屏幕也是用到了外置内存空间存储图片资源。

好的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-10 16:03 , Processed in 2.496290 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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