|
此前已经进行了Coremark跑分测试,也完成了touchGFX Textarea显示字符。 现在将Coremark跑分结果显示在touchGFX Textarea中。 Coremark跑分结果有将近20行,在横屏的情况下不能完全显示。因此需要将其改为竖屏。 先说一个错误的测试。在cubeMX中横屏的参数设置是Width = 480,Hight = 272。 最初的想法是既然改为竖屏那么就将Width = 272,Hight = 480。这种方法是行不通的。 正确且简单的做法是在touchGFX->Config->Display->display Orientation中点击竖屏,就行word中的横向页面变纵向页面。
此时,在Canvas中画布就变为纵向。这样就可以愉快的纵向显示字符了。 在工程中如前例所示,引入Coremark的文件,更改stack = 0x4000。首先测试其能正常跑起来,能够从串口打印跑分结果。考虑到Coremark的结果是以printf()输出且数量巨大,一个一个将同时显示到LCD的text中有些麻烦。简便的方法是在fputc()中实现。具体如下,先判读一个printf()结束,行号自加1,大于设定行号清零。 int fputc(int ch, FILE *f) { volatile uint32_t guard = 0; while (!LL_USART_IsActiveFlag_TXE(USART3)) { if (++guard > 1000000) break; } LL_USART_TransmitData8(USART3, (uint8_t)ch); if (ch == '\n' || ch == '\r') { lcdLines[lcdWriteIdx][lcdMsgLen] = 0; lcdWriteIdx = (lcdWriteIdx + 1) % LCD_LINE_NUM; if (lcdLineCnt < LCD_LINE_NUM) lcdLineCnt++; lcdMsgLen = 0; lcdLineNew = 1; } else { if (lcdMsgLen < LCD_MSG_MAX - 1) lcdLines[lcdWriteIdx][lcdMsgLen++] = (char)ch; else lcdMsgLen = 0; } return ch; } LCD显示代码如下,利用软件实现环形缓冲区,将字符写入LCD。写入时需要检测换行标志 void screenView::handleTickEvent() { extern volatile char lcdLines[][60]; extern volatile uint8_t lcdLineNew, lcdWriteIdx, lcdLineCnt; if (lcdLineNew) { lcdLineNew = 0; static touchgfx::Unicode::UnicodeChar displayBuf[50 * 60 + 50]; uint16_t pos = 0; int start = ((int)lcdWriteIdx - lcdLineCnt + LCD_LINE_NUM) % LCD_LINE_NUM; for (uint8_t i = 0; i < lcdLineCnt; i++) { int idx = (start + i) % LCD_LINE_NUM; if (i > 0) displayBuf[pos++] = '\n'; uint16_t j = 0; while (lcdLines[idx][j] != 0 && pos < 50 * 60 + 49) displayBuf[pos++] = (touchgfx::Unicode::UnicodeChar)lcdLines[idx][j++]; } displayBuf[pos] = 0; textArea1.setWildcard1(displayBuf); textArea1.invalidate(); } } 最终实现效果如下
|
#双节活动 6.touchGFX中字符显示横屏改竖屏
#双节活动 5.(1laryer)touchGFX生成代码中双缓冲改为单缓冲完成字符显示
#双节活动 4.touchGFX生成代码中调用printf()仿真时存在的问题及解决
[STM32H735G-DK评测]四、TouchGFX在LCD—text中显示动态字符(2)
#双节活动 2.在touchGFX中配置text控件的一个小坑
[STM32H735G-DK评测]四、TouchGFX在LCD—text中显示动态字符(1)
[STM32H735G-DK评测]三、TouchGFX初体验,图片切换
STM32H750DK智能零售界面设计——10后端系统和GUI交互设计
STM32H750DK智能零售界面设计——9模态窗口(Modal Window)显示QR码
STM32H750DK智能零售界面设计——8购物清单项设计
微信公众号
手机版