8.stm32的I2C总线通信原理,24Cxx存储芯片,I2C读写24Cxx

I2C总线通信原理

EEPROM(24CXX)存储芯片介绍

I2C读写EEPROM实例

一. I2C总线通信原理

1. I2C总线简介与特征

        I2C(Inter-Integrated Circuit)总线(也称IIC或I2C)是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,期间封装形式少,通信速率高等优点。

        两条总线线路:一条串行数据SDA,一条串行时钟线SCL来完成数据的传输及外围器件的扩展.   

        I2C总线上的每一个设备都可以作为主设备或者从设备,而且每一个设备都会对应一个唯一的地址.

        I2C总线数据传输速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下 可达3.4Mbit/s。一般通过I2C总线接口可编程时钟来实现传输速率的调整,同时也跟所接的上拉电阻的阻值有关。  

        I2C总线上的主设备与从设备之间以字节(8位)为单位进行单双工的数据传输。

2. I2C物理结构

 3. I2C总线协议

空闲,起始,结束的条件

 数据传输

 4. I2C读写操作

(1)主设备往从设备读写数据

 

(2)主设备读从设备的某个寄存器(与上述区别为寄存器) 

5.STM32F4-I2C控制器特性

 STM32F4-I2C通讯引脚


二.EEPROM(24CXX)存储芯片介绍

 1.EEPROM介绍

  后4位固定为1010,主要看前三位A0-A1,看图:READ为1,WRITE为0

电器连接

有上述得设备地址:        

读地址:    1010 0001        即 0xA1      

写地址:    1010 0000        即 0xA0 


三.I2C读写EEPROM实例

1.实验要求:I2C读写EEPROM

2.cubemx创建工程

(1)I2C的设置(查看原理图<搜索24C65> PB6,PB7)

注意:24CXX是I2C通信用到的芯片

(2)RCC,USART配置

(3)I2C默认配置,不需要修改

3.步骤:
(1)全程在main.c中<main()之外>

#define ReadAddr 0xA1
#define WriteAddr 0xA0
uint8_t Wbuf[20]="EEPROM TEXT OK!\n";
uint8_t Rbuf[20]={0};
int fputc(int ch,FILE *p){
	while(!(USART1->SR&(1<<7)));
	USART1->DR =ch;
	return ch;
}
//写数据
void Eeprom_Write(uint8_t MemAddr,uint8_t *Wbuf,uint8_t len){
	while(len--){
		while(HAL_I2C_Mem_Write(&hi2c1, WriteAddr, MemAddr, I2C_MEMADD_SIZE_16BIT, Wbuf, 1, 100!=HAL_OK)){};
			MemAddr++;
		  Wbuf++;
	}
}
//对数据
void  Eeprom_Read(uint16_t MemAddr, uint8_t *Rbuf, uint16_t len )
{
	 while(HAL_I2C_Mem_Read(&hi2c1, ReadAddr, MemAddr, I2C_MEMADD_SIZE_16BIT, Rbuf  , len, 100) != HAL_OK );
}

(2)使用函数(main()之内,while()之外)

	printf("开始:\n");
	Eeprom_Write(0, Wbuf, sizeof(Wbuf) );	
	HAL_Delay(500);	
	Eeprom_Read(0 , Rbuf, sizeof(Rbuf));	
	printf("READ:  %s\n", Rbuf);

3.串口打印 开始: xxx

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值