stm32f411 硬件硬盘 ssd1289

stm32f411 HAL ssd1289

我在 ssd1289@stm32f411v 上苦苦挣扎了一段时间。我在屏幕上刷新数据时遇到问题。来自 bmp180 等变量的变化似乎不会刷新。屏幕上的字符串在不清除背景的情况下一个接一个地放置。我写了清理整个屏幕的功能,但它变慢了,屏幕开始闪烁:

void LCD_Clear(void) {
     uint32_t i = 0;
     LCD_SetWindow(0,0,320,240);
     LCD_write_command(0x0022);
     for (i = 0; i < 320*240; i++) { LCD_write_data(0x0000); }
}

我尝试使用具有 65Hz 刷新率和较低频率的定时器中断 ::

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){
      if ( htim ->Instance == TIM3 ){
         LCD_Clear();
         LCD_PutStr(10,30,temperature,RGB565(255,192,255));
         LCD_PutStr(60,30,pressure,RGB565(255,192,255));
      }
}

在调试时出现错误:

Info : The target is not running when halt was requested, stopping GDB.

当我删除 LCD_Clear();来自 timfunction,我有开始时描述的症状。

知道哪里出了问题。

AS PeterJ_01 说:执行时间太长了。

在中断中我没有清除整个屏幕,只有部分:)