今天学习air32没啥进展,还是简单的操作io口,这回是用软iic来驱动ssd1306oled屏幕,因为我是参考stm32的教程来学习的,一开始的操作io口因为标准库都是一样的所以直接按照教程调用函数就行,到了oled这里就不行了,我之前用stm32学习的时候是直接编译完烧录屏幕就能点亮了,这回不行了,我用了逻辑分析仪抓了一下波形,发现没有波形。

然后进入江科大教程给的oled.c文件中将引脚输出改模式成推挽输出,原来是复用开漏输出,但是可能有的oled模块没有上拉电阻或者上拉电阻不匹配,可能会没有波形输出,改成推挽输出应该就有波形了

修改好以后编译一下然后烧录,再用逻辑分析仪抓一下波形就有波形了

但是能抓到波形还是不行。屏幕依旧不显示,我推测可能是因为io速度太快的原因,将air32频率降到72mhz以后就可以正常显示了,但是显示还是不稳定,oled屏幕显示一段时间就熄灭了,不清楚什么原因,后面的计划就是尝试硬件iic能不能改进这个问题了,同样的代码在stm32f103c8t6上运行就没有任何问题,哎,希望有大佬可以救救我啊。。。

Comments NOTHING