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

【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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版