0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

第七章OLED显示“Hello”

撞上电子 2023-06-20 10:37 次阅读

第一节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。

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

第二节 硬件解读

88ff9cfa-0f0e-11ee-a579-dac502259ad0.png

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

89087032-0f0e-11ee-a579-dac502259ad0.png

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

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

8912c640-0f0e-11ee-a579-dac502259ad0.png

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

89191d74-0f0e-11ee-a579-dac502259ad0.png

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

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

891fa4d2-0f0e-11ee-a579-dac502259ad0.png

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

STM32引脚

OLED引脚

PA8

I2C3_CS

PB4

I2C3_SDA

第三节 CubeMX配置

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

8926e92c-0f0e-11ee-a579-dac502259ad0.png

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

892d2512-0f0e-11ee-a579-dac502259ad0.png

第四节 MDK代码

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

8939673c-0f0e-11ee-a579-dac502259ad0.png

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

894387bc-0f0e-11ee-a579-dac502259ad0.png

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

894b7c9c-0f0e-11ee-a579-dac502259ad0.png

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

89529630-0f0e-11ee-a579-dac502259ad0.png

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

895b9a32-0f0e-11ee-a579-dac502259ad0.png

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

896454e2-0f0e-11ee-a579-dac502259ad0.png

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

896c3ab8-0f0e-11ee-a579-dac502259ad0.png

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

8972c1ee-0f0e-11ee-a579-dac502259ad0.png

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

897903ec-0f0e-11ee-a579-dac502259ad0.png


第五节 实验现象

注意:

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

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

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

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

日期:2023.06.07

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

    关注

    118

    文章

    5990

    浏览量

    221490
  • IIC
    IIC
    +关注

    关注

    11

    文章

    285

    浏览量

    37810
收藏 人收藏

    评论

    相关推荐

    什么是oled显示oled属于液晶屏幕吗

    OLED显示器(有机发光二级管显示器)是一种使用有机发光材料作为发光元件的显示技术。与传统液晶显示器(LCD)不同,
    的头像 发表于 01-23 15:49 700次阅读

    ad9942 Hcounter在VD_X下降沿的后第七个cli上升沿置0,这里的作用是是什么?

    问题1 如下图,Hcounter 在VD_X下降沿的后第七个cli上升沿置0,这里的作用是是什么,为什么在第七个位置置0?Hcounter 在ad9942内部那些信号或者序列会使用到? 有没有VD
    发表于 12-21 06:08

    OLED怎么实现字库的字模显示

    OLED怎么实现字库的字模显示
    发表于 10-13 06:24

    电机拖动的教程课件资料分享

    本文档的主要内容详细介绍的是电机拖动的教程课件资料合集免费下载主要内容包括了:绪论,第一直流电机,第二 直流电动机的电力拖动,第三 变压器,第四 三相异步电动机,第五
    发表于 09-22 06:27

    全息透明oled显示屏怎么用

    全息透明OLED显示屏是一种新兴的显示技术,具有透明度高、色彩鲜艳、视角广等优点,被广泛应用于广告、展览、商业展示等领域。本文将介绍全息透明OLED
    的头像 发表于 08-16 17:08 742次阅读

    展厅透明oled显示屏怎么样

    展厅透明OLED显示屏怎么样   尼伽OLED透明屏技术研发部整理发布,转载须注明来源   随着科技的不断进步,OLED(Organic Light Emitting Diode)透明
    的头像 发表于 08-16 16:46 523次阅读

    商业透明oled显示屏怎么用

    尼伽OLED透明屏技术研发部整理发布,转载须注明来源 商业透明OLED显示屏怎么用 随着科技的不断进步,OLED透明屏作为一种新型的显示技术
    的头像 发表于 08-16 16:23 451次阅读

    ddr200t开发板第七第八个led如何点亮?

    如果点亮第七个led是不是只用改board_ddr200t.h里边的和main。c里边的,还要在哪个.h文件修改吗?我的main函数是对的,就是第七个led不亮不知道哪里出了问题
    发表于 08-12 06:01

    第七章 Google地圖與GPS定位 - 第3节第七章 Google地圖與GPS定位 - 第3节

    服务器函数代码
    充八万
    发布于 :2023年07月30日 07:36:16

    第七章 Google地圖與GPS定位 - 第2节第七章 Google地圖與GPS定位 - 第2节

    服务器函数代码
    充八万
    发布于 :2023年07月30日 07:35:25

    第七章 Google地圖與GPS定位 - 第1节第七章 Google地圖與GPS定位 - 第1节

    服务器函数代码
    充八万
    发布于 :2023年07月30日 07:34:35

    67.7.13 第七章小结 #硬声创作季

    网络函数应用程序
    充八万
    发布于 :2023年07月20日 18:35:30

    OLED显示屏上显示您自己的照片

    电子发烧友网站提供《在OLED显示屏上显示您自己的照片.zip》资料免费下载
    发表于 06-30 10:10 0次下载
    在<b class='flag-5'>OLED</b><b class='flag-5'>显示</b>屏上<b class='flag-5'>显示</b>您自己的照片

    CH32V103基础教程71-温湿度及RTC显示

    本章教程主要使用温湿度传感器(DHT11)读取周围环境温湿度并通过OLED显示,同时显示时间。本章教程在第十二、第六十九章、第七十章基础
    发表于 05-06 15:46

    浅谈OLED柔性显示

    人们对显示器要求的提升从来没有停止过,现在大家对柔性OLED屏的兴趣明显要大于OLED硬屏,与普通的硬屏显示器相比,柔性OLED
    的头像 发表于 05-04 13:49 904次阅读