1.14寸LCD调试问题记录
发布网友
发布时间:2024-10-17 22:20
我来回答
共1个回答
热心网友
时间:2024-10-23 05:01
在STM32F427ZGT6硬件平台上,试图通过硬件SPI1驱动1.14寸TFT彩色显示屏(ST7789驱动芯片)时遇到了问题。之前使用GD32F303ZGT6主芯片时,驱动无碍,但在当前项目中却一直无法驱动,困扰了近一个月。经过深入排查,问题终于在SPI波形分析中找到。
首先,确认了LCD初始化函数,与官方代码对比,未发现明显错误。LCD显示屏的RESET、CS和D/C引脚虽非硬件SPI控制,但确认它们已正确配置为推挽输出。
SPI初始化方面,检查固件库函数使用无误,通过示波器观察到问题出在发送0x01时,CS引脚过早拉高导致后续数据失效。问题定位在硬件SPI发送函数,它在数据发送后立即置高CS,这导致了时序异常。
为解决这个问题,尝试了两种方法。第一种是添加一级验证,确保发送缓冲区数据为空后再解除CS,但在LCD初始化阶段,这种方法不可行,因为它可能导致关键帧数据的不稳定。
因此,采用了第二种方法,即在SPI_I2S_SendData函数后增加软件延时,以延长CS置1的时间,避免数据失效。经过调整,无论是第1帧还是后续数据,波形时序都恢复正常,屏幕驱动成功。具体如发送0x11(00010001)时,显示了正常的波形和驱动效果。