你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

#双节活动 5.(1laryer)touchGFX生成代码中双缓冲改为单缓冲完成字符显示

[复制链接]
patch1582 发布时间:2026-10-3 13:21

在TouchGFX中仅配置了TextArea控件,目的是测试在Text控件中动态显示字符。因此LTDC只设置了1层。此时只需要单缓冲区即可。

image.png

而在touchGFX生成的TouchGFXGeneratedHAL.cpp文件中是默认双缓冲的

void TouchGFXGeneratedHAL::initialize()

{

HAL::initialize();

registerEventListener((Application::getInstance()));

enableLCDControllerInterrupt();

enableInterrupts();

setFrameBufferStartAddresses((void)frameBuf, (void)(frameBuf + sizeof(frameBuf) / (sizeof(uint32_t) 2)), (void)0);

}

双缓冲下 TouchGFX 画到后台 0x7003FC00,但是显示当前画面的地址是 0x70000000 。

这样就出现了,新数据存放在0x7003FC00,显示却是0x70000000 里的数据。导致想要的字符不能显示。

将setFrameBufferStartAddresses((void)frameBuf, (void)(frameBuf + sizeof(frameBuf) / (sizeof(uint32_t) 2)), (void)0);改为setFrameBufferStartAddresses((void)0x70000000, (void)0, (void*)0);即可解决以上问题。

单双缓冲区的作用原理如下

image.png

赞 收藏 评论0 发布时间:2026-10-3 13:21

举报

0个回答

所属标签

ST中文论坛活动

即日起开启活动话题入口,之后的活动统一都放在此处,欢迎大家的加入!


最新内容

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版