2017-12-27 839 views
0

有些时候我正在用ssd1289 @ stm32f411v挣扎。我在刷新屏幕上的数据时遇到问题。像bmp180等温度变量似乎不刷新。屏幕上的字符串在不清除背景的情况下彼此重叠。我写的功能清洗整个屏幕,但它的缓慢和屏幕开始闪烁:stm32f411 HAL ssd1289

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)); 
     } 
} 

和调试中断,我有错误:

信息:当请求暂停,停止GDB时,目标未运行。

当我删除LCD_Clear();从功能我有症状描述在开始。

任何想法是什么错。

+0

你的中断处理程序的执行时间实在是太长了明确整个屏幕。 –

回答

0

因为PeterJ_01说:执行时间太长。

在中断我不只是局部的:)