STM32F103 AT24C02 EEPROM驱动代码

 基于STM32F103 系列单片机编写 AT24C02 EEPEOM存储器驱动代码

AT24C02 简介

特性

  1. 400KHz I2 C 总线兼容
  2. 1.8 6.0 伏工作电压范围
  3. 低功耗 CMOS 技术
  4. 写保护功能
  5. WP 为高电平时进入写保护状态
  6. 页写缓冲器
  7. 自定时擦写周期
  8. 1,000,000 编程/擦除周期
  9. 可保存数据 100
  10. 8 DIP SOIC TSSOP 封装

概述 

AT24C02是一个2K位串行非易数据存储器,内部包含一个8字节数据缓冲器,数据通过IIC总线进行传输

IC管脚描述

 

 注意

此存储芯片有一个特性,数据得写入是放在数据缓冲器当中得,并不是直接写入到芯片中,所以AT24C02一次最大连续写入数据量为8个字节,超过会重新覆盖

写入后切记不能立即读取数据,需要等待一个芯片内部写周期时序完成才能对芯片进行操作,写周期未完成时,芯片处于锁住状态

写周期

关于芯片详细描述参考芯片数据手册查询 

驱动代码 

AT24C02.C

#include "AT24C02.h"

/**
 * @brief 
 * 
 * @param I2Cx 输入外设
 */
void EEPROM_I2C_Configuration_Init(I2C_TypeDef *I2Cx) // IIC_1 外设初始化
{
    I2C_InitTypeDef I2C_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;

    // 配置I2C参数
    I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
    I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
    I2C_InitStructure.I2C_OwnAddress1 = OWN_ADDRESS; // 这里设置自身I2C地址
    I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
    I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
    I2C_InitStructure.I2C_ClockSpeed = I2C_SPEED;

    if (I2Cx == I2C1)
    {
        // 打开外设时钟
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

        // 配置I2C引脚
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; // 设置为开漏输出
        GPIO_Init(GPIOB, &GPIO_InitStructure);

        // 初始化I2C_1
        I2C_Init(I2C1, &I2C_InitStructure);
        I2C_Cmd(I2C1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值