stm32cube配置spi驱动st7735s屏--Apple的
2021-11-28 本文已影响0人
applecai
一,前言
之前ti的335无法驱动st7735s的0.96寸的屏,其实买家给的code好像我也无法用。等于st7735s的0.96寸的65k彩屏我从来没点亮过。所以我双11买了逻辑分析仪,那么调试和spi的屏应该是比较方便的。
二,点亮st7735s
- 先点亮屏幕,证明硬件是正常的
网上找了code说能点亮,我先尝试了下,它是gpio模拟spi的,确实能点亮,说明屏幕是正常的。 -
cs,sck,mosi改成spi2.
结果配置的时候cs无法自动控制,所以改成手工控制。
image.png -
点不亮屏幕
哈哈,逻辑分析仪上场了。用控制变量法是我最擅长的调试方法。正常驱动屏幕的波形。
image.png
默认为高电平,上升沿,而且是第二沿输出值。所以我改了下。结果依然无法点亮
image.png
问题就出在连逻辑分析仪都无法解析。原来是clock默认值为低。gpio初始化的时候是高电平,为什么输出是低电平?我想了下加了个内部上拉电阻,哈哈,输出高电平了。屏幕点亮了,但是为花屏。 - 解决花屏
我又对比了下,write data是16bit的,我连续2个8bit传输,改了下也是花屏。还是看UM吧!um写的是第一个上升沿,clock默认为低电平呢~我又该了spi初始化配置,依然是花屏。再次检查代码,原来是我write data函数中手误rd没有设置为高电平导致的问题。
三,硬件连接
image.png用spi2驱动的波形,这是21M的8分频。
image.png
改成4分频,spi波特率为5.12M依然正常。不过我理解大部分slave设备能支持5m波特率为上限了,我还是不要弄那么快
四,小结
问题解决咯,靠的就是逻辑分析仪。反正是上升沿就可以,然后write16bit也完全可以用2个8bit的,cs一直为低也不要紧。工欲善其事必先利其器!