其实OLED算是非常常用的一个小模块了,之前用的一直用的是软件模拟的IIC,总的来说感觉还是都是有点"答辩",经常莫名其妙的就点不亮的,用了cubemx之后硬件iic配置就非常方便了,还是想用硬件iic,一方面是速率快,二是稳定。在百度搜了一圈也没发现什么好的,github上也有的是一堆答辩,找到一个用起来很不错的就分享一下github上的一个开源库。

链接如下https://github.com/4ilo/ssd1306-stm32HAL(我相信你能打开它hhhh)

正如作者所描述的,你只需要添加这俩个文件,用上这几句话即可在这里插入图片描述
不过接下来还是稍微详细说明一下其中的一些细节

1.

文件的目录如下,有一个lib和一个example,分别是库文件,和一个stm32f4的例子
在这里插入图片描述
使用的时候需要吧lib里面的文件复制到项目里,并添加进去,还有头文件能被找到,具体操作这里就不细说了
在这里插入图片描述

2.

你需要修改ssd1306.h里面对应的芯片型号,像我使用的是stm32f1的,就改成f1,原库里面是f4的
在这里插入图片描述

3.

IIC设置,其实可以打开原项目里面example的cubemx的文件,可以看到他的iic设置,其实基本上就是点一下iic,把disable变成I2C就搞定了,下图是我的设置
在这里插入图片描述

4.

就像上面作者那样,声明头文件,做初始化。有一个小tip就是,在定义I2C_HandleTypeDef hi2c1的时候需要加一个extern,因为这个已经是在i2c.c里面定义过了,需要引用外部的,否则屏幕点不亮的。

在这里插入图片描述

基本上到这里屏幕就能顺利点亮了,具体的一些操作请参考他文件里的一些函数,或者自己编写一点?hahhh,总而言之,我觉得这个库是非常方面而且简便的。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐