0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

玩转STM32和EV24C MCU + EEPROM ST + EVASH

曾中 来源:jf_76391252 作者:jf_76391252 2024-07-01 09:58 次阅读


简介

本指南旨在帮助您轻松上手使用STM32微控制器和EVASH的EV24C系列EEPROM芯片。通过本教程,您将学习如何在实际项目中使用这些组件,逐步掌握从基本到高级的操作技巧。

必备材料

STM32开发板(如STM32F103C8T6)

EVASH EV24C256A EEPROM开发套件

连接线(杜邦线)

基本电子工具(烙铁、万用表等)

开发板与EEPROM连接

将STM32开发板与EV24C256A EEPROM开发板按以下方式连接:

VDD (开发板) 连接 VDD (EEPROM)

GND (开发板) 连接 GND (EEPROM)

SCL (开发板) 连接 SCL (EEPROM)

SDA (开发板) 连接 SDA (EEPROM)

基本操作

1. 初始化I2C

在STM32上初始化I2C接口,代码如下:

c复制代码

#include "stm32f1xx_hal.h"I2C_HandleTypeDef hi2c1;void MX_I2C1_Init(void)

{

hi2c1.Instance = I2C1;

hi2c1.Init.ClockSpeed = 100000;

hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;

hi2c1.Init.OwnAddress1 = 0;

hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;

hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;

hi2c1.Init.OwnAddress2 = 0;

hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;

hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;

if (HAL_I2C_Init(&hi2c1) != HAL_OK)

{

// Initialization Error

Error_Handler();

}

}

2. 读写EEPROM

读取和写入EEPROM的函数:

c复制代码

HAL_StatusTypeDef EEPROM_Write(uint16_t MemAddress, uint8_t *pData, uint16_t Size)

{

return HAL_I2C_Mem_Write(&hi2c1, EEPROM_ADDRESS, MemAddress, I2C_MEMADD_SIZE_16BIT, pData, Size, HAL_MAX_DELAY);

}HAL_StatusTypeDef EEPROM_Read(uint16_t MemAddress, uint8_t *pData, uint16_t Size)

{

return HAL_I2C_Mem_Read(&hi2c1, EEPROM_ADDRESS, MemAddress, I2C_MEMADD_SIZE_16BIT, pData, Size, HAL_MAX_DELAY);

}

进阶操作

1. 页写操作

EEPROM页写功能允许一次写入多字节数据,提高写入效率。

c复制代码

#define EEPROM_PAGE_SIZE 64HAL_StatusTypeDef EEPROM_PageWrite(uint16_t MemAddress, uint8_t *pData, uint16_t Size)

{

uint16_t remaining = Size;

while (remaining > 0)

{

uint16_t write_size = remaining > EEPROM_PAGE_SIZE ? EEPROM_PAGE_SIZE : remaining;

if (HAL_I2C_Mem_Write(&hi2c1, EEPROM_ADDRESS, MemAddress, I2C_MEMADD_SIZE_16BIT, pData, write_size, HAL_MAX_DELAY) != HAL_OK)

{

return HAL_ERROR;

}

remaining -= write_size;

pData += write_size;

MemAddress += write_size;

HAL_Delay(5); // 延时以确保写入完成

}

return HAL_OK;

}

2. 自动地址递增读取

使用自动地址递增功能可连续读取EEPROM中的数据。

c复制代码

HAL_StatusTypeDef EEPROM_SequentialRead(uint16_t MemAddress, uint8_t *pData, uint16_t Size)

{

return HAL_I2C_Mem_Read(&hi2c1, EEPROM_ADDRESS, MemAddress, I2C_MEMADD_SIZE_16BIT, pData, Size, HAL_MAX_DELAY);

}

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16977

    浏览量

    350206
  • STM32
    +关注

    关注

    2265

    文章

    10870

    浏览量

    354682
  • EEPROM
    +关注

    关注

    9

    文章

    1010

    浏览量

    81395
收藏 人收藏

    评论

    相关推荐

    ST24C04 pdf

    This specification covers a range of 4 Kbits I2C bus EEPROM products, the ST24/25C04 and the
    发表于 12-14 15:49 49次下载
    <b class='flag-5'>ST24C</b>04 pdf

    STM32入门开发: 采用IIC硬件时序读写AT24C08(EEPROM)

    STM32入门开发: 采用IIC硬件时序读写AT24C08(EEPROM)
    发表于 11-21 13:51 47次下载
    <b class='flag-5'>STM32</b>入门开发: 采用IIC硬件时序读写AT<b class='flag-5'>24C</b>08(<b class='flag-5'>EEPROM</b>)

    STM32入门开发: 介绍IIC总线、读写AT24C02(EEPROM)(采用模拟时序)

    时序的,本文采用的是模拟时序,下篇文章就介绍配置STM32的IIC硬件时序读写AT24C02和AT24C08。模拟时序更加方便移植到其他单片机,通用性更高,不分MCU;硬件时序效率更高
    发表于 11-25 20:06 39次下载
    <b class='flag-5'>STM32</b>入门开发: 介绍IIC总线、读写AT<b class='flag-5'>24C</b>02(<b class='flag-5'>EEPROM</b>)(采用模拟时序)

    EV24C512A Ultra EEPROM 在移动电池和家庭储能电池 BMS 保护板中的应用

    EV24C512A Ultra EEPROM 在移动电池和家庭储能电池 BMS 保护板中的应用
    的头像 发表于 06-23 16:37 937次阅读

    EVASH Ultra EEPROM 在无线麦克风方案中的应用

    EVASH Ultra EEPROM 在无线麦克风方案中的应用
    的头像 发表于 06-23 17:16 594次阅读

    EVASH Ultra EEPROM和Microchip 32位MCU在功放产品中的大批量应用

    EVASH Ultra EEPROM和Microchip 32位MCU在功放产品中的大批量应用
    的头像 发表于 06-24 17:39 371次阅读

    BMS保护板厂家收藏 EVASH Ultra EEPROM 应用

    BMS保护板厂家收藏 EVASH Ultra EEPROM 应用
    的头像 发表于 06-25 16:37 287次阅读

    科普EEPROM 科普 EVASH Ultra EEPROM 科普存储芯片

    科普EEPROM 科普 EVASH Ultra EEPROM 科普存储芯片
    的头像 发表于 06-25 17:14 498次阅读

    科普 EVASH Ultra EEPROM 晶圆生产过程

    科普 EVASH Ultra EEPROM 晶圆生产过程
    的头像 发表于 06-26 10:16 388次阅读

    EVASH + 云汉芯城战略合作 购买EVASH Ultra EEPROM,解决采购难题,轻松获取高性能存储解决方案!

    EVASH + 云汉芯城战略合作 购买EVASH Ultra EEPROM,解决采购难题,轻松获取高性能存储解决方案!
    的头像 发表于 06-26 18:38 320次阅读

    EVASH Ultra EEPROM应用哪些电子产品?

    EVASH Ultra EEPROM应用哪些电子产品?
    的头像 发表于 06-27 12:55 322次阅读

    EVASH Ultra EEPROM 开发板使用说明书 简介

    EVASH Ultra EEPROM 开发板使用说明书 简介 欢迎使用EVASH Ultra EEPROM开发板使用说明书。本说明书将为您提供使用搭载
    的头像 发表于 07-01 09:39 443次阅读

    玩转EEPROM——全面指南

    玩转EEPROM——全面指南 EEPROM(电可擦除可编程只读存储器)是一种能够在断电后保存数据的存储器,广泛应用于存储配置参数和少量数据的场景。本文将带您深入了解EEPROM的基础知
    的头像 发表于 07-01 09:36 2283次阅读
    <b class='flag-5'>玩转</b><b class='flag-5'>EEPROM</b>——全面指南

    国内芯片行业的过去、现状与未来:EVASH Ultra EEPROM的视角

    国内芯片行业的过去、现状与未来:EVASH Ultra EEPROM的视角
    的头像 发表于 08-12 17:51 574次阅读

    探索存储新未来:为何EVASH EV24C256A EEPROM成为市场新宠

    探索存储新未来:为何EVASH EV24C256A EEPROM成为市场新宠
    的头像 发表于 09-05 15:31 263次阅读