stm32f0通过ILI9163驱动TFT液晶屏显示问题

无帝老三 2016-03-03 05:42:07
TFT液晶屏进行屏幕显示切换时,先执行了清屏操作,在显示下一个屏幕时会出现上一次的显示残留,不是每次都出现,会偶尔出现,请教一下做过类似项目的大神,大概是什么原因导致的?
...全文
600 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshi_ziyu 2016-03-04
  • 打赏
  • 举报
回复
清屏操作是数据写0 还是写空格
无帝老三 2016-03-04
  • 打赏
  • 举报
回复
void Lcd_WriteIndex(UINT8 Index) { LCD_CS_CLR; LCD_DC_CLR; CLI(); while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET); SPI_SendData8(SPI2, Index); //while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET); while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) == SET); LCD_CS_SET; LCD_DC_SET; SEI(); } void Lcd_WriteData(UINT8 Data) { LCD_CS_CLR; LCD_DC_SET; CLI();//关中断 while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET); SPI_SendData8(SPI2, Data); //while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET); while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) == SET); LCD_CS_SET; SEI();//开中断 } 问题原因大致确定为:在SPI与LCM进行通信时,没有关闭中断,导致上述现象不定时出现。SPI为硬件操作,还是会被CPU中断所影响。想起先贤的经典之言:中断是万恶之源。。。
无帝老三 2016-03-04
  • 打赏
  • 举报
回复
数据写为全0,两个有什么影响吗?

21,615

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧