【STM32】24c02的初始化与基本使用(CT117E电路)

目录

I2C协议

24C02存储芯片

24c02的使用

24c02的初始化

24c02的基本控制方法(基于蓝桥杯官方库文件)

参考文献


I2C协议

I2C(Inter - Integrated Circuit总线是一种由PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。也可以简单地理解为I2C是微控制器与外围芯片的一种通讯协议。在不同的书籍中,可能会称为I2C,IIC,或者Ⅰ平方C,但是概念也是一样的,只是叫法不同。

24C02存储芯片

CT117E电路所用的EEPROM存储器24C02

 

24c02的使用

24c02的初始化

比赛会提供蓝桥杯官方库文件“i2c.c”和“i2c.h”,其初始化可以直接调用当中的库函数即可。初始化的库函数如下:

i2c_init();

24c02的基本控制方法(基于蓝桥杯官方库文件)

24c02的数据写入

void _24c02_Write(u8 address,u8 data)
{
	I2CStart();
	I2CSendByte(0xa0);//write
	I2CWaitAck();
	I2CSendByte(address);//
	I2CWaitAck();
	I2CSendByte(data);//
	I2CWaitAck();
	I2CStop();	
}

24c02的数据读取

u8 _24c02_Read(u8 address)
{
	u8 temp;
	I2CStart();
	I2CSendByte(0xa0);//write
	I2CWaitAck();
	I2CSendByte(address);
	I2CStop();
	
	I2CStart();
	I2CSendByte(0xa1);//read
	I2CWaitAck();
	temp = I2CReceiveByte();
	I2CWaitAck();
	I2CStop();
	
	return temp;
}

根据以上代码为基础实现24c02的多组数据保存

void Save_All(u8 *data)
{
	_24c02_Write(0x11,*(data+0));
	_24c02_Delay(5);
	_24c02_Write(0x11+1,*(data+1));
	_24c02_Delay(5);
	_24c02_Write(0x11+2,*(data+2));
	_24c02_Delay(5);
}

根据以上代码为基础实现24c02的多组数据的读取

    	threshold[0]=_24c02_Read(0x11+0);
		_24c02_Delay(5);
		threshold[1]=_24c02_Read(0x11+1);
		_24c02_Delay(5);
		threshold[2]=_24c02_Read(0x11+2);
		_24c02_Delay(5);

注意在每次读取和保存操作后都要进行等待(一段时间的延时),以防上一次读取与保存操作未完成。

参考文献

[1] I2C总线介绍与24CO2芯片 https://wenku.baidu.com/view/e3c1e6806529647d272852d1.html

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值