我和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刷新和降低freq ::
的定时器中断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)
AS PeterJ_01说:执行时间太长了。
在中断时我不会只清除整个屏幕:)