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 说:执行时间太长了。
在中断中我没有清除整个屏幕,只有部分:)
我在 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 说:执行时间太长了。
在中断中我没有清除整个屏幕,只有部分:)