你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

[复制链接]
月之骑士-194136 提问时间:2011-3-7 20:18 /
EEPROM又称为电可擦可编程只读存储器,掉电后数据不丢失。广泛用于少量数据的保存,一些增强型51单片机和AVR都有芯片内部集成EEPROM。开发板使用的是I2C接口ATMEL24C02芯片,芯片容量是2Kbit,也就是256字节。硬件连接如图所示,与STM32芯片上的I2C1硬件接口相连。
图1电路连接.jpg
I2C的时序我这里就不介绍了,大家可以上网查查。I2C最大的优点就是有硬件地址,可以通过不同的硬件地址,挂载不同功能的I2C芯片。缺点就是速度慢,我们常使用到400kbps
一硬件实现      
STM32官方给的范例中给出了两个封装好的文件:I2C_EE.CI2C_EE.H
给了这样几个函数
void I2C_EE_Init(void);
//I2C端口和I2C模块初始化
void I2C_EE_ByteWrite(uint8_t* pBuffer, uint8_t WriteAddr);
//单个字节写入
void I2C_EE_PageWrite(uint8_t* pBuffer, uint8_t WriteAddr, uint8_t NumByteToWrite);
//页写,这款24C02能够支持8个字节同时写,能够提高写入时间。其他的EEPROM比如24C04/08/16支持16字节每页,24C32/64支持32字节每页
void I2C_EE_BufferWrite(uint8_t* pBuffer, uint8_t WriteAddr, uint16_t NumByteToWrite);
//缓存写入,会调用上面两个子函数,根据当前的位置和写入的大小,调用是字节写还是页写
void I2C_EE_BufferRead(uint8_t* pBuffer, uint8_t ReadAddr, uint16_t NumByteToRead);
//缓存读,和上面类似
void I2C_EE_WaitEepromStandbyState(void);
       //EEPROM内部也有编程时间,使用要等到内部完成才能进行下一个步骤。
  测试结果.jpg
需要注意的是:官方这两个文件有点BUG,有时候会卡在读文件的时候,需要做些修改。二是24C02总共有256页,也就是0X000XFF
       二软件实现
       最后说明下,我在使用STM32103VCT6的时候发现,硬件I2C有点问题。所以这里还用软件模拟I2C的功能实现同样的功能。我提供两个文件IIC_SOFT.CIIC_SOFT.H文件。里面的函数为
void I2C_Configuration(void);
bool I2C_Write(u8 address,u8 data);
bool I2C_Writes(u8 *buff,u8 address,u8 length);
//bool I2C_Writes(u8 address,u8 *buff,u8 length);//只能写一页的内容
void I2C_BufferWrite(u8* pBuffer, u8 WriteAddr, u16 NumByteToWrite);
//仿照I2C_EE写的,数据不受限制
u8 I2C_Read(u8 address);
bool I2C_Reads(u8 address,u8 *buff,u8 length);
测试结果2.jpg

I2C接口EEPROM-软硬件实现.zip

下载

297.96 KB, 下载次数: 131, 下载积分: ST金币 -1

收藏 1 评论68 发布时间:2011-3-7 20:18

举报

68个回答
ml8866 回答时间:2011-3-8 15:26:56

RE:【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

XIELIAO
megaf 回答时间:2011-4-2 15:43:53

RE:【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

看看,谢谢,最近正在解决这个问题
denganhao-33176 回答时间:2011-4-9 11:26:53

RE:【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

顶起来。谢谢。
flyme511 回答时间:2011-5-6 10:49:41

回复:【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

谢谢!!!!!!
xialibaren0008 回答时间:2011-5-13 17:32:45

回复:【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

look look
lixupeng-286501 回答时间:2011-5-13 19:11:10

RE:【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

学习!!
z120461454-1409 回答时间:2011-6-15 12:08:56

RE:【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

,学习
wwskyfhj 回答时间:2011-6-15 22:42:43

回复:【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

学习,嘿嘿
回复第 1 楼 月之骑士于2011-03-07 12:18:08发表:
 
EEPROM又称为电可擦可编程只读存储器,掉电后数据不丢失。广泛用于少量数据的保存,一些增强型51单片机和AVR都有芯片内部集成EEPROM。开发板使用的是I2C接口ATMEL24C02芯片,芯片容量是2Kbit,也就是256字节。硬件连接如图所示,与STM32芯片上的I2C1硬件接口相连。

I2C的时序我这里就不介绍了,大家可以上网查查。I2C最大的优点就是有硬件地址,可以通过不同的硬件地址,挂载不同功能的I2C芯片。缺点就是速度慢,我们常使用到400kbps
一硬件实现      
STM32官方给的范例中给出了两个封装好的文件:I2C_EE.CI2C_EE.H
给了这样几个函数
void I2C_EE_Init(void);
//I2C端口和I2C模块初始化
void I2C_EE_ByteWrite(uint8_t* pBuffer, uint8_t WriteAddr);
//单个字节写入
void I2C_EE_PageWrite(uint8_t* pBuffer, uint8_t WriteAddr, uint8_t NumByteToWrite);
//页写,这款24C02能够支持8个字节同时写,能够提高写入时间。其他的EEPROM比如24C04/08/16支持16字节每页,24C32/64支持32字节每页
void I2C_EE_BufferWrite(uint8_t* pBuffer, uint8_t WriteAddr, uint16_t NumByteToWrite);
//缓存写入,会调用上面两个子函数,根据当前的位置和写入的大小,调用是字节写还是页写
void I2C_EE_BufferRead(uint8_t* pBuffer, uint8_t ReadAddr, uint16_t NumByteToRead);
//缓存读,和上面类似
void I2C_EE_WaitEepromStandbyState(void);
       //EEPROM内部也有编程时间,使用要等到内部完成才能进行下一个步骤。
 
需要注意的是:官方这两个文件有点BUG,有时候会卡在读文件的时候,需要做些修改。二是24C02总共有256页,也就是0X000XFF
       二软件实现
       最后说明下,我在使用STM32103VCT6的时候发现,硬件I2C有点问题。所以这里还用软件模拟I2C的功能实现同样的功能。我提供两个文件IIC_SOFT.CIIC_SOFT.H文件。里面的函数为
void I2C_Configuration(void);
bool I2C_Write(u8 address,u8 data);
bool I2C_Writes(u8 *buff,u8 address,u8 length);
//bool I2C_Writes(u8 address,u8 *buff,u8 length);//只能写一页的内容
void I2C_BufferWrite(u8* pBuffer, u8 WriteAddr, u16 NumByteToWrite);
//仿照I2C_EE写的,数据不受限制
u8 I2C_Read(u8 address);
bool I2C_Reads(u8 address,u8 *buff,u8 length);

 
laigs218 回答时间:2011-6-20 21:01:52

RE:【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

I can't see attached file
marjolein-12602 回答时间:2011-6-30 01:52:43

RE:【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

谢谢了
jlm-135429 回答时间:2011-7-4 18:19:02

RE:【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

好资料
dingyu1985 回答时间:2011-7-30 10:09:52

回复:【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

看看
谢谢!!
shuangjf 回答时间:2011-7-30 10:28:10

RE:【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

好东西,谢谢分享!
zttyler-56924 回答时间:2011-7-31 17:57:37

RE:【ST公益分享】神舟IV学习笔记(六)I2C接口EEPROM-软硬件实现

看看,谢谢,最近正在解决这个问题
12345下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版