IIC总线协议
空闲状态
I2C总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时,各设备的输出级场效应管处于截止状态,即释放总线,两条信号线各自的上拉电阻提高电平。
起始信号
当SCL高电平期,SDA由高到低的跳变;启动信号是电平跳变时序信号,而不是电平信号。
停止信号
当SCL高电平期,SDA从低到高的跳变;停止信号也是电平跳变时序信号,而不是电平信号。
应答信号
对反馈的有效响应位置ACK要求是,将SDA拉下线,确保在SCL稳定的低电平在高电平期间。
数据的有效性
I2C当总线传输数据时,时钟信号为高电平时,数据线上的数据必须保持稳定。只有当时钟线上的信号为低电平时,才允许数据线上的高电平或低电平状态发生变化。即:数据在SCL需要在上升沿到来之前做好准备。并在在下降沿到来之前必须稳定。
数据的传输
在12C总线上传输的每个数据都有一个时钟脉冲对应(或同步控制),即在SCL在串行时钟的配合下,在SDA每个数据串行传输。数据位的传输是边沿触发。
STM32CubeMX的配置
基于HAL库的OLED导入驱动文件
导入这四个驱动文件src文件下
基于HAL库的OLED下载驱动文件:https://pan.baidu.com/s/19YtuVRDJePyBOW2JmVVqUQ 提取码:5i2e
然后将这个C文件文件yb_oled_STM32Cube.c在工程中加入
在main.c将下图所示的头文件添加到文件中
显示图像数组的全局声明
到这里,oled添加了驱动文件
最后,如果您想显示相应的内容,请直接在主函数中调用函数。所有工程代码都附在文章末尾
所有工程代码 链接:https://pan.baidu.com/s/1GkHyUcJG_f7z_vUe17-EPg 提取码:lhn0
参考:
正点原子】STM32开发板实验教程(F103)_哔哩哔哩_bilibili">正点原子STM32开发板实验教程(F103)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1kx411k7JT?p=34【小蜜蜂笔记】基于STM32CubeMX嵌入式开发基础教程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1m7411H7oT?p=10