第七章OLED显示“Hello”

描述

 

第一节IIC基础  

IIC最重要的就是时序,主要如下:

1. 起始条件(Start Condition):

       -I2C通信开始时,主设备将SDA从高电平切换到低电平时,SCL处于高电平状态。

       -起始条件至少需要持续一个SCL周期。

2. 地址传输(Address Transmission):

       -主设备发送设备地址和读写位(R/W)位来选择特定的从设备。

       -地址传输是以一个起始位开始的,表示数据的开始。

       -7位地址模式:主设备发送7位设备地址,最后一位是R/W位,指示读取(R=1)或写入(W=0)操作。

       -10位地址模式:主设备先发送第一个字节的高6位,然后发送一个仅包含从设备地址的位(R/W位)的起始位,最后发送第一个字节的低位。

3. 应答位(ACK/NACK):

       -在每个字节的传输之后,接收设备需要提供一个应答位(ACK或NACK)。

       -主设备接收到每个字节的最后一个位后,会释放SDA线,接收设备通过将SDA线拉低来提供应答位。

       -如果接收设备成功接收到数据,则提供ACK(拉低SDA线),否则提供NACK(保持SDA线为高电平)。

4. 数据传输(Data Transmission):

       -主设备发送数据字节给从设备,每个字节由8个数据位和一个应答位组成。

       -数据传输是以起始位开始的,并在每个SCL周期传输一个位。

       -每个数据位都在SCL的上升沿或下降沿传输。

       -数据传输的最后一个位由接收设备提供应答位。

5. 停止条件(Stop Condition):

       -主设备将SDA从低电平切换到高电平时,SCL处于高电平状态。

       -停止条件至少需要持续一个SCL周期。

       -停止条件表示I2C通信的结束。

6. 时钟速率(Clock Speed):

       -I2C总线的时钟速率由主设备控制。

       -标准模式下,时钟频率为100 kHz;快速模式下,时钟频率为400 kHz。

       -高速模式和超高速模式下,时钟频率更高。

 

第二节 硬件解读  

         IIC

上图就是物联网开发板上面的OLED模块的原理图,哪里来的?为什么是这样的?请大家打开改OLED的数据手册就知道了,如下图:

IIC

这个就是数据手册提供的原理图,是不是和蓝桥杯物联网开发板上面的原理图一模一样?当芯片厂家提供了参考电路设计图,我们工程师只需要把它COPY就可以啦。

需要注意的是OLED模块的供电引脚是A_3V3,如下:

IIC

而A_3V3引脚又是同过STM32L071KBU6来控制的,如下图:

IIC

通过上图看出来,当PB5为低电平时,三极管SI2301导通,A_3V3得电,OLED工作;反之,三极管SI2301不导通,A_3V3失电,OLED熄灭。

说完OLED的电源引脚,来看看OLED的IIC引脚,如下:

IIC

看得出来STM32与OLED引脚的关系:

STM32引脚

OLED引脚

PA8

I2C3_CS

PB4

I2C3_SDA

第三节 CubeMX配置  

第一步:配置PB5为输出模式,并初始化为低电平,使得OLED可以正常工作,不要忘记和6处一样使用用户标签哦。

IIC

第二步:配置OLED的I2C3,如下图:配置完后PA8和PB4会自动变成绿色。

IIC

 

第四节 MDK代码  

第一步:找到比赛提供的代码驱动,将oled.h和font.h粘贴到“项目名/Core/Inc”文件夹中,如下图:

IIC

第二步:找到比赛提供的代码驱动,将oled.c粘贴到“项目名/Core/Src”文件夹中,如下图:

IIC

第三步:按照如下图将oled.c文件添加到项目中,如下图:注意oled.c文件的目录,在“项目名/Core/Src”中,不要选到其他位置,否则编译过程中会报错。

IIC

第四步:添加之后会看见oled.c,如下图:然后改点“Colse”点“Colse”,改点“OK”点“OK”。

IIC

第五步:可以看见项目栏的多了一个oled.c文件,如下图:

IIC

第六步:编译代码,发现有一个错误,如下图:原来是OLED_Write函数有问题。这个函数就是需要我们手写的OLED的驱动。

IIC

第七步:编写OLED_Write函数,如下图:

IIC

第八步:添加头文件,如下图:

IIC

第九步:编写OLED相关代码。如下图:

IIC


 

第五节 实验现象   

注意:

1,下载程序的时候,请选择A开发板。

现象:OLED第一行显示”Hello”。

来源:撞上电子微信公众号

版权:东莞市东城墨竹公子电子工作室

日期:2023.06.07

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分