使用:
MEM_Write (ReceiveString,0x01,4);
HAL_Delay (1000);
MEM_Read (I2CString,0x01,4);
由于24C02分为8Byte为一页,不能连续跨页写数据,如果写的数据大于8比特或者跨页了,应分为多段进行写入。且写入之间要有延时,否则后面的不能写入,如:
uint8_t SendBuf[21]="13981422143139814221";
uint8_t ReceiveBuf[21]="";
MEM_Write(SendBuf,0x00,8);
HAL_Delay(100);//延时一定要有。
MEM_Write(SendBuf+8,0x08,8);
HAL_Delay (1000);
MEM_Read(ReceiveBuf,0x00,8);
HAL_Delay(100);
MEM_Read(ReceiveBuf+8,0x08,8);
LCD_DisplayStringLine (Line3,ReceiveBuf);
驱动程序(最后两个自己编写,其余底层驱动官方提供)
#include "i2c.h"
//#define DELAY_TIME 20
#define DELAY_TIME 20
//PB6_SCL
//PB7_SDA
/**
* @brief SDA线输入模式配置
* @param None
* @retval None
*/
void SDA_Input_Mode()
{
GPIO_InitTypeDef GPIO_InitStructure = {0};
GPIO_InitStructure.Pin = GPIO_PIN_7;
GPIO_InitStructure.Mode = GPIO_MODE_INPUT;
GPIO_InitStructure.Pull = GPIO_PULLUP;
GPIO_InitStructure.Speed = GPIO_S

本文介绍了如何使用STM32通过I2C接口对24C02 EEPROM进行分页读写操作的方法。针对24C02存储器的特性,文章详细解释了在写入数据时避免跨页写入的要求,并提供了具体的延时和分段写入示例。此外,还给出了实现I2C通信所需的基本驱动函数。
最低0.47元/天 解锁文章
1735

被折叠的 条评论
为什么被折叠?



