STM32CubeMX配置IIC总线读写EEPROM学习记录(学不会找我)

本文记录了使用STM32CubeMX配置STM32F03ZET6进行IIC总线连接AT24C02 EEPROM的步骤,包括SYS和RCC的配置、IIC接口设置、串口配置以及时钟树的调整。接着介绍了代码实现,包括EEPROM的地址定义和读写操作,并展示了实验的成功结果。
摘要由CSDN通过智能技术生成

一、STM32CubeMX 配置

首先打开STM32CubeMX 选择芯片型号建立工程,我这里选择STM32F03ZET6(正点原子战舰V3) 具体新建工程的过程不再赘述,太基础。
首先配置System Core目录下的SYS和RCC选项卡如下图:

配置SYS下的Debug为Serial Wire

配置

配置RCC下的HSE(高速时钟)

我这里配置为外部晶振Crystal/Ceramic Resonator,具体根据板子的硬件配置设置

在这里插入图片描述

IIC总线接口配置

STM32F103ZET6有两路硬件IIC,配置Connectivity选项卡下的I2C1为I2C基本参数(parameter Setting)保持默认不变,DMA和NVIC暂不配置,以后单独讲

在这里插入图片描述

串口配置

为了方便测试代码效果看现象,增加一个串口配置输出相关信息。
串口配置老生常谈了,上篇文章有详细过程,包括串口的中断和DMA,链接放下面自己去看,这里不讲了

上篇文章传送门

时钟树

时钟树配置
这个测试比较简单,只用到IIC和USART两个外设,所以STM32CubeMX的配置至此就结束了,设置项目名称,文件路径,IDE,和代码风格就可以生成代码了,具体设置点这里看STM32CubeMX 配置部分的最后有详细说明。

二、代码实现(上才艺)

EEPROM的地址

#define ADDR_AT24C02_Write 0xA0
#define ADDR_AT24C02_Read 0xA1

首先是define了EEPROM芯片AT24C02的读写地址,为什么就是0xA0和0xA1呢,为什么不是别的噻,听我细细道来,这就跟芯片的电路连接有关系了,如下图:

在这里插入图片描述
EEPROM的写地址定义为:1 0 1 0 A0 A1 A2 0
EEPROM的读地址定义为:1 0 1 0 A0 A1 A2 1
这其中A0~A2就代表芯片的A0到A2三个引脚的电平状态,我这里都接了地,所以A0 A1 A2都是0,所以带进去就分别是0xA0 和0xA1,具体可以看AT24C02的datasheet。

代码

(1)首先我定义了两个数组,分别用于往EEPROM里写数据和存储从EEPROM里读出的数据

uint8_t I2C_Buffer_Write[
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值