簡介
本指南旨在幫助您輕松上手使用STM32微控制器和EVASH的EV24C系列EEPROM芯片。通過本教程,您將學習如何在實際項目中使用這些組件,逐步掌握從基本到高級的操作技巧。
必備材料
EVASH EV24C256A EEPROM開發(fā)套件
連接線(杜邦線)
基本電子工具(烙鐵、萬用表等)
開發(fā)板與EEPROM連接
將STM32開發(fā)板與EV24C256A EEPROM開發(fā)板按以下方式連接:
VDD (開發(fā)板) 連接 VDD (EEPROM)
GND (開發(fā)板) 連接 GND (EEPROM)
SCL (開發(fā)板) 連接 SCL (EEPROM)
SDA (開發(fā)板) 連接 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的函數(shù):
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頁寫功能允許一次寫入多字節(jié)數(shù)據(jù),提高寫入效率。
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. 自動地址遞增讀取
使用自動地址遞增功能可連續(xù)讀取EEPROM中的數(shù)據(jù)。
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);
}
上一篇:STM32引腳中的BOOT1在哪里
下一篇:CH32和stm32的庫函數(shù)一樣嗎?
推薦閱讀最新更新時間:2025-06-27 02:20






設計資源 培訓 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領先的新器件
- 意法半導體STM32MP23x:突破成本限制的工業(yè)AI應用核心
- 意法半導體推出用于匹配遠距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設置字重-ESP32篇
- 使用樹莓派進行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- LTC3772EDDB 演示板,550kHz 降壓型 DC/DC 轉(zhuǎn)換器,VIN = 2.75V-8V,VOUT = 3.3V @ 2A
- 用于大功率通用離線電源的 NCP1379 準諧振電流模式控制器的典型應用
- 用于 CRT 顯示器的 92W、-15V、5V、6.3V、15V、80V、200V AC 到 DC 多輸出電源
- 來自多個輸入源的 LTC3622EDE-23/5 雙路輸出降壓型穩(wěn)壓器的典型應用電路
- AKD4644-B,帶有內(nèi)置 MIC/HP/RCV 放大器的 AK4644 立體聲編解碼器評估板
- 使用 Analog Devices 的 AD8033AKS 的參考設計
- LT6657BHMS8-1.25 負分流模式基準的典型應用電路
- CN0130
- 用于便攜式的 12 位 8 通道 DAC
- 使用 ROHM Semiconductor 的 BD12IA5WEFJ 的參考設計
- 蘋果發(fā)新版iCloud for Windows 增加鑰匙串密碼管理應用
- 豪威集團與Seeing 攜手開發(fā)全球首款集成ISP和專用集成電路
- Arm表示,如果與Nvidia的交易失敗,公司將會停滯不前
- 51單片機并行I/O口工作原理
- 基于ISP芯片的可編程周期信號測試儀的設計
- 基于S3C2410A芯片和Flash存儲器實現(xiàn)嵌入式工控量熱儀的設計
- 首個可變形納米級電子設備制成,有望改變量子科學研究方式
- 基于AT89C51單片機的自行車儀表系統(tǒng)設計
- 直流電機與交流電機的區(qū)別 直流電機與交流電機哪個噪音小
- 深槽式異步電動機改善原理 深槽式異步電動機可以改善什么性能
- 潤石科技推出RS3215-Q1系列低壓差線性穩(wěn)壓器
- CANape 23開啟智能測試新時代(下)
- 軟件定義汽車電源管理設計:NXP的PMIC選型攻略解析
- 深度測評時空壺X1同聲傳譯器:全球最先進AI同傳設備的非凡實力
- 作為領先的垂直整合制造商(IDM),英飛凌在 300mm氮化鎵生產(chǎn)路線圖方面取得突破
- 鐵威馬F6-424 Max:六盤位擴容+國產(chǎn)系統(tǒng)兼容,小白也能玩轉(zhuǎn)NAS
- 開關電源給鉛酸電池恒流恒壓充電的電流跳動問題解析
- 自動駕駛中的激光雷達是否會傷害攝像頭?
- 觸覺技術助力企業(yè)在激烈的市場競爭中脫穎而出
- 芯片中的串擾噪聲有幾類