STM32_IIC

STM32_IIC

一.介绍

1.1 IIC总线协议介绍

IIC:Inter Integrated Circuit,集成电路总线,是一种同步 串行 半双工通信总线。

1.2 IIC结构图

1.3 IIC协议

IIC协议时序:

信号类型

SCL

SDA

起始信号

高电平

由高向低

停止信号

高电平

由低向高

应答信号

高电平

低电平

起始和停止信号:

应答和非应答信号:

发送数据:

二.AT24C02介绍

EEPROM是一种掉电后数据不丢失的储存器,常用来存储一些配置信息,在系统重新上电时就可以加载。

AT24C02是一个2K bit的EEPROM存储器,使用IIC通信方式。

A0/1/2 : 设备地址决定引脚

SCL : 时钟线

WP : 写保护引脚

SDA : 数据线

AT24Cxx

容量(bit)

页数

页内字节数

数据地址(占用bit数)

AT24C01

1K bit (128 B)

16

8 Byte

7bit

AT24C02

2K bit (256 B)

32

8 Byte

8bit

AT24C04

4K bit (512 B)

32

16 Byte

9bit

AT24C08

8K bit (1024 B)

64

16 Byte

10bit

AT24C16

16K bit (2048 B)

128

16 Byte

11bit

AT24C32

32K bit (4096 B)

128

32 Byte

12bit

AT24C64

64K bit (8192 B)

256

32 Byte

13bit

AT24C128

128K bit (16384 B)

256

64 Byte

14bit

AT24C256

256K bit (32768 B)

512

64 Byte

15bit

AT24C512

512K bit (65535 B)

512

128 Byte

16bit

AT24C02通讯地址:

三.AT24C02的读写和驱动

3.1 AT24C02的读写

写操作:

  • T24C02支持字节写模式和页写模式。

  • 字节写模式就是一个地址一个数据进行写入。

  • 页写模式就是连续写入数据。只需要写一个地址,连续写入数据时地址会自增,但存在页的限制,超出一页时,超出数据覆盖原先写入的数据。但读会自动翻页。

读操作:

  • AT24C02支持当前地址读模式,随机地址读模式和顺序读模式。

  • 当前读模式是基于上一次读/写操作的最后位置继续读出数据。

  • 随机地址读模式是指定地址读出数据。

  • 顺序读模式是连续读出数据。

3.2AT24C02驱动步骤

3.2.1软硬件比较

IIC

用法

速度

稳定性

管脚

硬件IIC

比较复杂

较稳定

需使用特定管脚

软件IIC

操作过程比较清晰

较慢

稳定

任意管脚,比较灵活

分类

AT24C02****模块引脚

供电脚(3.3V)

时钟线(SCL)

数据线(SDA)

地(GND)

MINI板

VCC

PC12

PC11

GND

精英板

VCC

PB6

PB7

GND

战舰板

VCC

PB6

PB7

GND

探索板

VCC

PB8

PB9

GND

阿波罗

VCC

PH4

PH5

GND

北极星

VCC

PH4

PH5

GND

MINIPro H750

VCC

PB10

PB11

GND

四.IIC相关库函数

IIC写函数:

函数:HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout);

功能:IIC写数据

参数:

  • *hi2c 设置使用的是那个IIC 例:&hi2c2

  • DevAddress 写入的地址 设置写入数据的地址 例 0xA0

  • *pData 需要写入的数据

  • Size 要发送的字节数

  • Timeout 最大传输时间,超过传输时间将自动退出传输函数

IIC读函数

函数:HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout);

功能:IIC读一个字节

参数:

  • *hi2c: 设置使用的是那个IIC 例:&hi2c2

  • DevAddress: 写入的地址 设置写入数据的地址 例 0xA0

  • *pDat:a 存储读取到的数据

  • Size: 发送的字节数

  • Timeout: 最大读取时间,超过时间将自动退出读取函数

IIC写数据函数

函数:HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout);

功能: IIC写多个数据 该函数适用于IIC外设里面还有子地址寄存器的设备,比方说E2PROM,除了设备地址,每个存储字节都有其对应的地址

参数:

  • *hi2c: I2C设备号指针,设置使用的是那个IIC 例:&hi2c2

  • DevAddress: 从设备地址 从设备的IIC地址 例E2PROM的设备地址 0xA0

  • MemAddress: 从机寄存器地址 ,每写入一个字节数据,地址就会自动+1

  • MemAddSize: 从机寄存器地址字节长度 8位或16位

  • 写入数据的字节类型 8位还是16位

  • I2C_MEMADD_SIZE_8BIT

  • I2C_MEMADD_SIZE_16BIT

  • 在stm32f1xx_hal_i2c.h中有定义

  • *pData: 需要写入的的数据的起始地址

  • Size: 传输数据的大小 多少个字节

  • Timeout: 最大读取时间,超过时间将自动退出函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F405IIC是一款基于ARM Cortex-M4内核的高性能微控制器。该微控制器集成了丰富的外设,包括两个工作在不同频率的I2C总线接口。它具有丰富的内存和高速时钟频率,可以满足各种应用的需求。 STM32F405IIC的I2C总线接口支持标准模式和快速模式,可以实现与其他设备之间的通信。通过I2C总线接口,可以连接多个外部设备,实现数据传输和通信控制。每个I2C接口都有多个引脚可供选择,可以根据应用需求进行灵活配置。 除了I2C接口外,STM32F405IIC还具有其他外设,如UART、SPI、TIM、ADC等,可以满足各种应用的需求。它还支持多种接口和通信协议,如USB、CAN、Ethernet等,可扩展系统的功能。 STM32F405IIC具有低功耗特性,适合电池供电等应用场景。它还支持多个电源模式,可以根据系统需求选择合适的模式,优化功耗。 该微控制器的开发工具链完善,支持多种开发环境和编程语言,如Keil、IAR、STM32Cube等。开发者可以灵活选择适合自己的开发环境,并且可以利用丰富的开发资源和社区支持,快速开发应用程序。 综上所述,STM32F405IIC是一款功能强大、性能稳定的微控制器,适用于各种应用领域。它的I2C总线接口使其能够与其他设备进行通信,同时还具有丰富的外设和低功耗特性,可满足各种应用需求。它的开发工具链完善,开发门槛较低,非常适合中小型项目开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值