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

[STM32H735G-DK评测]四、TouchGFX在LCD—text中显示动态字符(2)

[复制链接]
patch1582 发布时间:2026-10-1 22:17

上一贴中已经解决编译出现的错误。那么接下来就是实现MCU发送字符到LCD的Text area显示。

首先确认Font_verdana_10_4bpp_0.cpp,Font_verdana_20_4bpp_0.cpp,Font_verdana_40_4bpp_0.cpp这三个字库文件中已经生成了ASCII所包含的那些字符。就是0x20-0x7F。Font_verdana_10_4bpp_0.cpp的字库如下所示,

FONT_GLYPH_LOCATION_FLASH_PRAGMA KEEP extern const uint8_t unicodes_verdana_10_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = { // Unicode: [0x0020] // (Has no glyph data) // Unicode: [0x0021] 0x89, 0x78, 0x78, 0x77, 0x67, 0x44, 0x11, 0x78, // Unicode: [0x0022] 0xD2, 0xB4, 0xC1, 0xA3, 0xB0, 0x92, // Unicode: [0x0023] 0x00, 0x36, 0x37, 0x00, 0x00, 0x09, 0x0A, 0x00, 0xA5, 0xAD, 0xAD, 0x02, 0x10, 0x28, 0x07, 0x00, 0x40, 0x55, 0x04, 0x00, 0xDA, 0xDB, 0x7B, 0x00, 0x90, 0x90, 0x00, 0x00, 0x90, 0x91, 0x00, 0x00, // Unicode: [0x0024] 0x00, 0x81, 0x00, 0x50, 0xEC, 0x3B, 0xD1, 0x82, 0x32, 0xE2, 0x82, 0x00, 0x60, 0xED, 0x19, 0x00, 0x91, 0x99, 0x22, 0x81, 0x86, 0xC2, 0xDC, 0x1A, 0x00, 0x81, 0x00, 0x00, 0x81, 0x00,

......

// Unicode: [0x0076] 0x78, 0x00, 0x78, 0xC2, 0x00, 0x1D, 0xC0, 0x33, 0x0A, 0x60, 0x98, 0x05, 0x10, 0**, 0x00, 0x00, 0x9B, 0x00, // Unicode: [0x0077] 0x77, 0x60, 0x0A, 0xA4, 0xA3, 0xA0, 0x0C, 0x67, 0xD0, 0xB1, 0x49, 0x3A, 0xB0, 0x76, 0x84, 0x0C, 0x80, 0x2D, 0xD0, 0x0A, 0x40, 0x0D, 0xA0, 0x07, // Unicode: [0x0078] 0xC5, 0x00, 0x4C, 0xA0, 0x77, 0x08, 0x10, 0xCD, 0x00, 0x10, 0xCC, 0x00, 0xA0, 0x86, 0x09, 0xA5, 0x00, 0x4D, // Unicode: [0x0079] 0x78, 0x00, 0x68, 0xD2, 0x00, 0x1D, 0xB0, 0x54, 0x09, 0x50, 0xBA, 0x03, 0x00, 0xCD, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x1D, 0x00, 0x50, 0x0A, 0x00, // Unicode: [0x007A] 0xC6, 0xDC, 0x0B, 0x00, 0xC0, 0x03, 0x00, 0x78, 0x00, 0x40, 0x0B, 0x00, 0xD1, 0x02, 0x00, 0xE8, 0xCC, 0x0B, // Unicode: [0x007B] 0x00, 0x90, 0x5B, 0x00, 0xA3, 0x00, 0x00, 0x94, 0x00, 0x00, 0x59, 0x00, 0xE2, 0x08, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x95, 0x00, 0x00, 0x94, 0x00, 0x00, 0xB2, 0x00, 0x00, 0x80, 0x5B, // Unicode: [0x007C] 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, // Unicode: [0x007D] 0xB1, 0x2B, 0x00, 0x00, 0x85, 0x00, 0x00, 0x94, 0x00, 0x00, 0xC1, 0x01, 0x00, 0x30, 0x6E, 0x00, 0xC0, 0x02, 0x00, 0xA3, 0x00, 0x00, 0x94, 0x00, 0x00, 0x76, 0x00, 0xB1, 0x1B, 0x00, // Unicode: [0x007E] 0x40, 0xAC, 0x00, 0x38, 0xC0, 0x71, 0x09, 0x1C, 0xB1, 0x00, 0xD8, 0x06 };

在screenView.cpp文件中实现如下函数

void screenView::setupScreen() { screenViewBase::setupScreen();

const char* msg = "STM32China TouchGFX Mid-Autumn Festival";

static touchgfx::Unicode::UnicodeChar displayBuffer[32]; int len = 0; for (int i = 0; msg[i] != '\0' && i < 31; i++) { displayBuffer[i] = (touchgfx::Unicode::UnicodeChar)msg[i]; len = i + 1; } displayBuffer[len] = 0;

textArea1.setPosition(50, 100, 300, 30); textArea1.setWildcard1(displayBuffer); textArea1.setColor(0xFFFFFFFF); textArea1.invalidate(); }

同时在在main()中调用MX_TouchGFX_Process();

while (1) {

MX_TouchGFX_Process();

}

那么,就可以实现将指针数组msg中的数据显示在LCD中,如图所示

image.png

赞 收藏 评论0 发布时间:2026-10-1 22:17

举报

0个回答

所属标签

ST中文论坛活动

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


最新内容

相似技术帖

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