|
已经实现了,MCU发送字符到LCD显示。这一次实现接收uart3发来的字符并显示在LCD-Text中。 从Stm32H735 DK的图纸中可以看到uart3 PD8PD9链接到stlink上,并且能够被win识别为虚拟串口。
从cubeMX中定义uart3 PD8PD9并使能中断,波特率115200,8位数据位1位停止位
配置好参数后,需要先测试串口的收发,收发成功后,在接收字符并显示到LDC中 串口的发送可以有两种测试方法, 1是库函数,uint8_t pData[6] = {0x31,0x32,0x33,0x34,0x35,0x36}; HAL_UART_Transmit(&huart3, pData, 6, 20); 2是printf,printf("Hello %d\r\n", 123); 发送测试是为了检验串口硬件的连通性,成功后,再测试接收。 在MDK中进入debug模式,先将断点放在接收中断中。由pc端串口工具下发数据,若是能进入中断说明能够成功接收数据。
再将断点放在接收回调函数中,由pc端串口工具下发数据,若是能停在该断点,需要检查接收数组中的数据并与发送数据进行对比,两者一致的话说明能够成功接收数据。
下一步,就是将接收数据显示到LCD的text中,再main()函数中驱动LCD, while (1) { HAL_LTDC_LineEventCallback(&hltdc); MX_TouchGFX_Process(); HAL_Delay(16); } 在handleTickEvent()中刷新并显示字符 void screenView::handleTickEvent() { extern volatile uint8_t uart3RxFlag; extern uint8_t uart3RxBuf[]; extern volatile uint16_t uart3RxLen; if (uart3RxFlag) { uart3RxFlag = 0; static touchgfx::Unicode::UnicodeChar displayBuffer[64]; uint16_t i; for (i = 0; i < uart3RxLen && i < 63; i++) { displayBuffer[i] = (touchgfx::Unicode::UnicodeChar)uart3RxBuf[i]; } displayBuffer[i] = 0; textArea1.setWildcard1(displayBuffer); textArea1.invalidate(); } } 最终显示效果如下
|
[STM32H735G-DK评测]四、TouchGFX在LCD—text中显示动态字符(1)
【STM32H735G-DK 评测】二、利用LTDC在 LCD 上打印字符串
ST软件工具我知道之STM32CubeProg和TouchGFX
2025国庆中秋活动体验报告6 OpenAMP实现数据交互
2025国庆中秋活动体验报告5 CustomContainer中控件与参数适配
2025国庆中秋活动体验报告4_解析传感器数据
2025国庆中秋活动体验报告3-STM32H745之CM4内核不定长中断接收
2025国庆中秋活动体验报告2 健康监测界面设计
【学习有礼】 STM32H7R/S线上课程,快速入手!
AN5617中OpenAMP Linker configuration中的一处勘误
微信公众号
手机版