[STM32H7] 【STM32H745I-DISCO 试用】+TemWin测试

[复制链接]
1112|2
 楼主| jinglixixi 发表于 2025-3-22 21:37 | 显示全部楼层 |阅读模式
本帖最后由 jinglixixi 于 2025-3-22 21:47 编辑

在例程中,提供了STemWin方面的测试程序,从中可以学习这方面的经验,也可在其基础上添加自己的应用。
在测试例程中,有2个 测试程序,其一是显示“Hello World!”,其显示效果如图1所示。
e8901330d4e38b49008673425726d380
图1 显示效果

该例程的主程序为:
  1. int main(void)
  2. {
  3. MPU_Config();
  4. CPU_CACHE_Enable();
  5. HAL_Init();
  6. SystemClock_Config();
  7. BSP_LED_Init(LED1);
  8. uwPrescalerValue = (uint32_t) ((SystemCoreClock /2) / 10000) - 1;
  9. TimHandle.Instance = TIM3;
  10. TimHandle.Init.Period = 500 - 1;
  11. TimHandle.Init.Prescaler = uwPrescalerValue;
  12. TimHandle.Init.ClockDivision = 0;
  13. TimHandle.Init.CounterMode = TIM_COUNTERMODE_UP;
  14. if(HAL_TIM_Base_Init(&TimHandle) != HAL_OK)
  15. {
  16. while(1)
  17. {
  18. }
  19. }
  20. if(HAL_TIM_Base_Start_IT(&TimHandle) != HAL_OK)
  21. {
  22. while(1)
  23. {
  24. }
  25. }
  26. BSP_SDRAM_Init(0);
  27. __HAL_RCC_CRC_CLK_ENABLE();
  28. GUI_Init();
  29. GUI_DispStringAt("Starting...", 0, 0);
  30. GUI_Initialized = 1;
  31. WM_SetCreateFlags(WM_CF_MEMDEV);
  32. MainTask();
  33. for(;;);
  34. }

通过观察,显示字符信息的语句并没有出现,经追踪,其内容位于下面的函数中,其内容为:
  1. void MainTask(void) {
  2. GUI_Clear();
  3. GUI_SetFont(&GUI_Font20_1);
  4. GUI_DispStringAt("Hello world!", (LCD_GetXSize()-100)/2, (LCD_GetYSize()-20)/2);
  5. while(1);
  6. }

由此,我们在需要信息显示时,就可以通过对该例程的使用来达到目的。
而另一个例程的功能就更加强大了,其主程序为:
  1. int main(void)
  2. {
  3. MPU_Config();
  4. CPU_CACHE_Enable();
  5. HAL_Init();
  6. SystemClock_Config();
  7. uwPrescalerValue = (uint32_t) ((SystemCoreClock /2) / 10000) - 1;
  8. TimHandle.Instance = TIM3;
  9. TimHandle.Init.Period = 500 - 1;
  10. TimHandle.Init.Prescaler = uwPrescalerValue;
  11. TimHandle.Init.ClockDivision = 0;
  12. TimHandle.Init.CounterMode = TIM_COUNTERMODE_UP;
  13. if(HAL_TIM_Base_Init(&TimHandle) != HAL_OK)
  14. {
  15. while(1)
  16. {
  17. }
  18. }
  19. if(HAL_TIM_Base_Start_IT(&TimHandle) != HAL_OK)
  20. {
  21. while(1)
  22. {
  23. }
  24. }
  25. BSP_SDRAM_Init(0);
  26. __HAL_RCC_CRC_CLK_ENABLE();
  27. GUI_Init();
  28. GUI_DispStringAt("Starting...", 0, 0);
  29. GUI_DispStringAt("Initializing lcd...", 0, 12);
  30. BSP_Config();
  31. GUI_Initialized = 1;
  32. GUI_DispStringAt("Initializing rtc and backup...", 0, 24);
  33. RTC_Init();
  34. WM_SetCreateFlags(WM_CF_MEMDEV);
  35. CALIBRATION_Check();
  36. GUIDEMO_Main();
  37. for(;;);
  38. }

经程序的编译与下载,其测试效果如下:
c02ab0ecfbf3f44ca073f65d89e87dad
图2 界面

f9ea115dad918921dbd28f7e8ce449d7
图3 表格

fc0041b5d3cbe6b8c0408b390c8a0394
图4 目录结构
85e75544239297cae56dc5803a85d388
图5 移动效果

2b01fbc6ceec467947e61a9c12e85fe7
图6环形转动

52ad73477b6cb690d025018ab6ca7ed8
图7 触摸校正

9cfd5f696ea23b826015ce0dd28b7854
图8 指定左上角

1e7f522c8f4bb6311915d441689b455b
图9 指定右下角

a8bb71860f34c4edc55b061379367b17
图10 渐变效果

3cda6a4341aac6331108a0c28d21467f
图11显示图像

ceebfcda8da8cae0f3ce94daaad527e9
图12 显示波形

c79c3173df2809edaacf37b1fb583fe4
图13 动画效果

有了这样丰富的资源,在我们的开发过程中就不再孤立无援,它就是我们效果制作的质量基准。




yangjiaxu 发表于 2025-4-9 14:46 | 显示全部楼层
STemWin和GTFX来比,是不是优势不大了啊?
 楼主| jinglixixi 发表于 2025-4-9 19:11 | 显示全部楼层
yangjiaxu 发表于 2025-4-9 14:46
STemWin和GTFX来比,是不是优势不大了啊?

没进行过详细的比较,但就其通过的功能看还是比较好用的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

521

主题

2949

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部