模拟I2C控制24C02(6)
发布时间:2021-06-06
发布时间:2021-06-06
使用STM32红牛开发的GPIO模拟I2C控制八个AT24C02的读写
}
void I2C_EE_Continue_Read(u8* pBuffer, u16 ReadAddr, u16 NumByteToRead)
{
u16 i=0;
/* Send START condition */
I2C_GenerateSTART();
I2C_SendData(I2C_SLAVE_ADDRESS7_R);
WaitAck();
for(i=0;i<NumByteToRead;i++)
{
*pBuffer = I2C_ReceiveData();
++pBuffer;
Ack();
}
NAck();
I2C_GenerateSTOP();
}
void wait(u16 Data)
{
u16 i;
for(i=0;i<Data;i++);
}
/******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
* File Name : main.c
* Author : Tanglin
* Version : V2.0.1
* Date : 11/9/2011
* Description : Main program body
********************************************************************************
* AT24C02内部共256字节
* 每次读写字节的地址最低两位出现A0时便会丢失之后的五个数据
* 因此,定义读写地址为EEPROM_WriteAddress1=0xa6
* 因为0x1a0-0xa6=250,几乎是该芯片可写的最大范围
* GPIOA模拟SCK,GPIOC模拟SDA
* 当八个芯片同时烧写时,只需更改i2c_ee.h里的 #define SDAread GPIOC->IDR & GPIO_Pin_7
*******************************************************************************/
上一篇:汽车火灾探测研究现状及发展趋势
下一篇:Android Widget