2017-12-27 525 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說:執行時間太長。

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