本帖最后由 jinglixixi 于 2025-3-22 21:47 编辑
在例程中,提供了STemWin方面的测试程序,从中可以学习这方面的经验,也可在其基础上添加自己的应用。
在测试例程中,有2个 测试程序,其一是显示“Hello World!”,其显示效果如图1所示。
图1 显示效果
该例程的主程序为:
- int main(void)
- {
- MPU_Config();
- CPU_CACHE_Enable();
- HAL_Init();
- SystemClock_Config();
- BSP_LED_Init(LED1);
- uwPrescalerValue = (uint32_t) ((SystemCoreClock /2) / 10000) - 1;
- TimHandle.Instance = TIM3;
- TimHandle.Init.Period = 500 - 1;
- TimHandle.Init.Prescaler = uwPrescalerValue;
- TimHandle.Init.ClockDivision = 0;
- TimHandle.Init.CounterMode = TIM_COUNTERMODE_UP;
- if(HAL_TIM_Base_Init(&TimHandle) != HAL_OK)
- {
- while(1)
- {
- }
- }
- if(HAL_TIM_Base_Start_IT(&TimHandle) != HAL_OK)
- {
- while(1)
- {
- }
- }
- BSP_SDRAM_Init(0);
- __HAL_RCC_CRC_CLK_ENABLE();
- GUI_Init();
- GUI_DispStringAt("Starting...", 0, 0);
- GUI_Initialized = 1;
- WM_SetCreateFlags(WM_CF_MEMDEV);
- MainTask();
- for(;;);
- }
通过观察,显示字符信息的语句并没有出现,经追踪,其内容位于下面的函数中,其内容为:
- void MainTask(void) {
- GUI_Clear();
- GUI_SetFont(&GUI_Font20_1);
- GUI_DispStringAt("Hello world!", (LCD_GetXSize()-100)/2, (LCD_GetYSize()-20)/2);
- while(1);
- }
由此,我们在需要信息显示时,就可以通过对该例程的使用来达到目的。
而另一个例程的功能就更加强大了,其主程序为:
|