(五)STM32F407 cubemx IIC驱动OLED(1)IIC协议篇

(五)STM32F407 cubemx IIC驱动OLED(1)IIC协议篇

   这篇文章主要是个人的学习经验,想分享出来供大家提供思路,如果其中有不足之处请批评指正哈。
  废话不多说直接开始主题,本人是基于STM32F407VET6芯片,但是意在你看懂这篇文章后,不管是F1,F4,H7等一系列系统硬件IIC配置都能明白如何通过参考手册去学习配置。而不是Ctrl c,Ctrl v。这篇文章大致的简述一下IIC协议,对IIC协议有一定的认识。

1)I2C 简介

  I2C(内部集成电路)总线接口用作微控制器和 I2C 串行总线之间的接口。它提供多主模式功能,可以控制所有 I2C 总线特定的序列、协议、仲裁和时序。它支持标准和快速模式。它还 与 SMBus 2.0 兼容。根据器件的不同,可利用 DMA 功能来减轻 CPU 的工作量。

2)I2C 主要特性

1.I2C 主模式特性:— 时钟生成 — 起始位和停止位生成
2.I2C 从模式特性:— 可编程 I2C 地址检测 — 双寻址模式,可对 2 个从地址应答 — 停止位检测
3.7 位/10 位寻址以及广播呼叫的生成和检测
4.支持不同的通信速度:— 标准速度(高达 100 kHz) — 快速速度(高达 400 kHz)

3)I2C模式选择

   从发送器 、从接收器 、主发送器 、主接收器。
   接下来就要介绍从接收端OLED,主发送端STM32。

主发送端

   在主模式下,I2C 接口会启动数据传输并生成时钟信号。串行数据传输始终是在出现起始位时开始,在出现停止位时结束。起始位和停止位均在主模式下由软件生成(也就是STM32编写)。 在从模式下,该接口能够识别其自身地址(7 或 10 位)以及广播呼叫地址。数据和地址均以 8 位字节传输,MSB 在前。起始位后紧随地址字节(7 位地址占据一个字节; 10 位地址占据两个字节,注意这)。地址始终在主模式下传送。 在字节传输 8 个时钟周期后是第 9 个时钟脉冲,在此期间接收器必须向发送器发送一个应答位。请参见图。
在这里插入图片描述    到这就需要明白两个概念:十位数据或者七位数据数据格式不同
    首先不同之处在于:在10 位寻址模式下,比较对象还包括头序列(11110xx0),其中,xx 表示该地址的两个最高有效位。头或地址不匹配:接口会忽略它并等待下一个起始位。头匹配(仅针对 10 位模式):如果 ACK 位置 1,则接口会生成一个应答脉冲并等待 8 位从地址。

从接受端

在这里插入图片描述  数据格式七位构成:起始位、从发送地址位、应答位、数据、应答位、停止位。
  数据格式十位长度:起始位、地址头序列、从发送地址位长度为2个字节、地址头序列、应答位、数据、应答位、停止位

主发送端

在这里插入图片描述1. EV5、EV6、EV9、EV8_1 和 EV8_2 事件可延长 SCL 低电平时间,直到相应的软件序列结束为止。
2. 如果软件序列在下一个字节传输结束之前未能完成,EV8 事件会延长 SCL 低电平时间。
至此对OLED部分的IIC有了一定的了解,下一步开始了解硬件OLED。

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要配置STM32F407微控制器的标准库以驱动I2C OLED显示屏,可以按照以下步骤进行: 1. 首先,确保已经正确连接了STM32F407与I2C OLED显示屏,包括VCC、GND、SCL和SDA引脚的连接。 2. 在STM32CubeMX软件中,选择正确的板卡型号,然后在Peripherals菜单下找到I2C配置。将需要使用的I2C总线的时钟频率设置为合适的值,并启用I2C外设。 3. 在Configuration菜单下,打开Middlewares选项,然后选择I2C文件。在文件配置中,将I2C总线名称设置为需要使用的总线。例如,若使用的是I2C1总线,则将其设置为I2C1。 4. 在User Code Initialization菜单中,找到对应I2C总线的初始化函数。这将为I2C总线的硬件配置生成一段代码。 5. 接下来,将提供给的OLED显示屏驱动程序文件添加到工程中。该文件应包含用于发送I2C数据的函数。 6. 在主函数中,先调用I2C初始化函数,设置I2C的特性和参数。 7. 在需要使用OLED显示屏的地方,调用驱动程序中的相应函数,向OLED发送数据。 8. 至此,完成了配置STM32F407标准库以驱动I2C OLED显示屏的过程。 需要注意的是,具体的配置步骤可能会因使用的开发环境和驱动程序而略有不同。在实际操作中,可以参考官方文档和示例代码,以确保正确配置和操作I2C驱动OLED显示屏。 ### 回答2: STM32F407是STMicroelectronics(意法半导体)推出的一款高性能ARM Cortex-M4核心的微控制器。要配置STM32F407标准库来驱动I2C(Inter-Integrated Circuit),并连接OLED显示器,可以按照以下步骤进行操作: 1. 硬件连接:将OLED显示器通过I2C总线连接到STM32F407的相应引脚。确保SDA(数据线)连接到I2C数据引脚,SCL(时钟线)连接到I2C时钟引脚。 2. 在STM32CubeMX中配置I2C:打开STM32CubeMX软件,创建一个新项目。在Pinout & Configuration选项卡中,找到I2C接口,选择相应的引脚,将其分配给I2C。 3. 配置I2C时钟频率:在Configuration选项卡中,找到RCC Configuration并展开,选择适当的时钟源和分频因子,以设置I2C的时钟频率。 4. 配置OLED驱动程序:在STM32CubeMX的Middleware选项卡中,找到OLED显示器的相关驱动程序。根据OLED显示器的型号和厂商选择相应的驱动。 5. 生成代码并导出:单击生成代码按钮,然后导出生成的代码。 6. 导入代码到开发环境:将生成的代码导入到用于开发的IDE(集成开发环境)中,如Keil、IAR等。 7. 在代码中初始化I2C和OLED:在生成的代码中找到I2C和OLED的初始化函数,并在主程序中调用它们进行初始化。 8. 编写显示代码:根据OLED显示器的配置和需求,编写相应的显示代码来展示内容。 9. 编译和烧录:将代码编译为二进制文件,然后使用烧录工具将二进制文件烧录到STM32F407微控制器中。 通过以上步骤,您就可以配置STM32F407标准库来驱动I2C总线上连接的OLED显示器了。请注意,确保您将相应的引脚分配给I2C总线,并正确配置时钟频率以确保I2C通信的正常运行。编写正确的显示代码可以在OLED显示器上展示所需的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RouDragon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值