STM32例程分享-03-EEPROM模块(AT24C02)(IIC)

1. 简介

  AT24C02是一个带写保护的2K位串行CMOS EEPROM,内部分成32页,每页8Byte,即共256个8位字节供用户读写,操作时有两种寻址方式:芯片寻址和片内子地址寻址。我们常用的是芯片寻址:AT24C02的芯片地址为1010,其地址控制字格式为[1010][A2A1A0][R/W]。其中A2,A1,A0可编程地址选择位。A2,A1,A0引脚接高、低电平后得到确定的三位编码,与1010形成7位编码,即为该器件的地址码。R/W为芯片读写控制位,该位为0,表示芯片进行写操作,一般情况下我们使用一片24C02时,将A2、A1、A0的引脚都接到GND,此时通信地址为0xa0

在这里插入图片描述

2. IIC驱动

  由于模块采用IIC通信,我们先写一个软件iic的驱动文件,在公众号“IOT趣制作”回复关键字“0419”,直接相关下载文件。下载完成后打开目录”./03-EPPROM模块\ERRPOM_at24c02示例工程\HARDWARE\IIC"下的myiic.h文件,根据需要修改自己的引脚,由于这里使用的是CRL和CRH寄存器来配置的输入输出方向,所以我们在修改时需要注意寄存器的正确使用,示例中IIC的SDA引脚为PB0,SCL引脚为PB1,在本STM32系列例程中涉及的所有IIC的相关模块,使用的都是这个IIC文件。
在这里插入图片描述

3. AT24C02驱动

 1)查看数据手册

  打开目录.\常用模块资料\03-EPPROM模块\参考资料文件夹的数据手册
在这里插入图片描述
在这里插入图片描述

 2) 原理图

  AT24C02的应用电路很简单,如下图,需要注意的是,如果我们使用的不是24C02的芯片而不是现成的模块时,需要在STM32的IIC引脚添加上拉电阻以保证IIC的正常通信。
在这里插入图片描述

 3) 读写操作

  读写操作的IIC时序如下,涉及的随机读写、页读写起以及始信号和停止信号等的时序图可以参考手册相关介绍

  4) 写字节

在这里插入图片描述

 5) 读字节

在这里插入图片描述

 6) 驱动代码

  完整驱动代码可以参考目录.\常用模块资料\03-EPPROM模块\ERRPOM_at24c02示例工程\HARDWARE\24CXX 文件夹下的文件
在这里插入图片描述

 7) 核心代码

a. 向at24c02某地址写某数据

AT24CXX_WriteOneByte(ADDRESS,DATA);

b. 读取at24c02某地址的数据

	DATA=AT24CXX_ReadOneByte(ADDRESS);

c. 主函数调用示例

/*
*********************************************************************************************************
* 函 数 名: main
* 功能说明: 主函数
* 形 参:无
* 返 回 值: 无
*********************************************************************************************************
*/
int main(void)
{
    
    
	delay_init();						//delay初始化
	uart_init(115200);			//串口初始化
	AT24CXX_Init();					//AT24CXX初始化
	//在地址0x00上写入数据0x66
	printf("24c02 addr [0x00] write data is: 0x%x\r\n",0x66);
	AT24CXX_WriteOneByte(0x00,0x66);
	delay_ms(50);
	//读出0x00地址上的数据
	read_Data=AT24CXX_ReadOneByte(0x00);
	printf("24c02 addr [0x00] read data is: 0x%x\r\n",read_Data);
	while(1)
	{
    
    
		delay_ms(20);
	}
}

4. 示例工程

 1) 打开工程

  打开目录下的文件夹.\常用模块资料\03-EPPROM模块\ERRPOM_at24c02示例工程的keil工程
在这里插入图片描述

 2) 编译烧录运行

  STM32向AT24C02的0X00地址中写入一个数据,如0x66,然后再读取地址0x00中读取数据,具体结果如下图所示:
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43351158/article/details/130131530