1、什么是IIC协议


2、模拟IIC协议
51单片机上面是没有与IIC协议相关的寄存器的(没有相关的硬件),不像串口可以配置对应的寄存器达到目的(比如修改波特率9600 or 115200),要配置IIC只能够根据用户手册里面的时序图,DHT11也是一样的配置法(也就是软件配置法)

3、IIC协议的起始和终止信号

在代码中模拟

4、IIC协议的应答信号

在代码中模拟

5、数据发送的时序


写代码

6、OLED写入指令和数据

看图写话

6、OLED显示一个点
思路:


地址模式:



代码:



7、OLED列地址和雪花BUG解决
OLED列地址


列寻址;



雪花清屏
有雪花的原因是因为寄存器里面还留有其他的数据在里面


清屏函数



8、显示一个字符A
这里的话要借助字符工具






烧录:

9、显示一串汉字




烧录:

10、OLED显示图片
配置图片(bmp格式,128x64个像素)


代码表示:

这个函数其实和清屏函数很像,拿来改一改就行了!


编译运行烧录:


![[AIGC] Spring中的SPI机制详解](https://img-blog.csdnimg.cn/direct/0a50f4c8f3554d86aa7d91504068b517.png)

















