STM32硬件SPI驱动OLED中CS过早跳变问题记录

前提:STM32f103RC (72M),oled接SPI1,MOSI一次传8bit数据

正确波形

软件SPI下,波形很好,CLK8个时钟,MOSI发送完数据,CS再置高
软件SPI

CS过早跳变波形

Q:初期测试时屏幕总点不亮,逻辑分析仪中CS左侧方波是进入SPI写的标志(自定义),但CS在LOW的时间太短,DATA明明没发送完CS就置HIGH

A:个人认为是SPI速度慢,GPIO速度过快导致的?将SPI1 改为2分频,GPIO速度维持2Mhz有后面的修正波形。实测GPIO 50Mhz配2分频SPI1也是可行的,只是SPI1频率不能再低。

128分频下SPI

修正后波形

注:由于逻辑分析仪带宽限制,部分波形不完整,但不妨碍观察此时CS是等MOSI传完8位数据后再置高
修正后

小结

神奇的bug,不知道我分析的对不对,反正能跑就行XD
以及,被吃灰3年的逻辑细分析仪救了一命,感谢当年毕业季淘旧物时强塞给我的学长


版权声明:本文为qq_42686387原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。