STM32F407 HAL库 I2C读写EEPROM AT24C02

配置SYS和时钟

https://blog.youkuaiyun.com/hmxm6/article/details/136636793

配置I2C

I2C Speed Mode: IIC模式设置 快速模式和标准模式。实际上也就是速率的选择。

I2C Clock Speed:I2C传输速率,默认为100KHz

Fast Mode Duty Cycle:快速模式下的I2C占空比

Clock No Stretch Mode: 时钟没有扩展模式

Primary Address Length selection: 从设备地址长度 设置从设备的地址是7bit还是10bit 大部分为7bit

Dual Address Acknowledged: 双地址确认

Primary slave address:  从设备初始地址
在这里插入图片描述

查看原理图对应引脚

在这里插入图片描述

在这里插入图片描述

注意事项

AT24C02有不同型号,对应每页的字节不同

型号 容量bit 容量byte 页数 字节/页 器件寻址位 可寻址器件数 WordAddress位数/字节数
AT24C32 32k 4K 128 32 A2A1A0 8 12/2
AT24C64 64k 8K 256 32 A2A1A0 8 13/2
AT24C128 128k 16K 256 64 A1A0 4 14/2
AT24C256 256k 32K 512 64 A1A0 4 15/2
AT24C512 512k 64K 512 128 A2A1A0 8 16/2

I2C设备地址

7 6 5 4 3 2 1 0
1 0 1 0 A2 A1 A0 R/~W

写入数据

每次写入数据不得超过页字节数

测试代码

头文件

#ifndef __BSP_I2C_EEPROM_H__
#define __BSP_I2C_EEPROM_H__

#ifdef __cplusplus
extern "C" {
   
#endif
	
#include "stm32f4xx.h"
	
#define EEPROM_ADDRESS        0xA0
#define EEPROM_MAX_TRIALS     300
#define I2Cx_TIMEOUT_MAX      300
#define EEPROM_PAGESIZE 	   	8

// 初始化
void I2C_EEPROM_Init(I2C_HandleTypeDef i2cHandle);

	

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值