一、STM32CubeMX配置
配置引脚
I2C总线对应PB6,PB7引脚,在配置CubeMX时,将PB6,PB7设为Output
将资料代码添加到自己的工程里----在底层驱动代码里找
二、代码部分
优化EEPROM读写函数
向EEPROM里写数据
//EEPROM的写操作
void EEPROM_Write(unsigned char *pucBuf,unsigned char ucAddr,unsigned char ucNum)
{
I2CStart();
I2CSendByte(0xa0);//写标志 0xa0是写,0xa1是读
I2CWaitAck();
I2CSendByte(ucAddr);//送到目的地址
I2CWaitAck();
while(ucNum--)
{
I2CSendByte(*pucBuf++);
I2CWaitAck();
}
I2CStop();
delay(500);//短暂延时
}
I2C相关代码
从EEPROM里读出数据
void EEPROM_Read(unsigned char *pucBuf,unsigned char ucAddr,unsigned char ucNum)
{
I2CStart();
I2CSendByte(0xa0);//先要写数据
I2CWaitAck();
I2CSendByte(ucAddr);//指令送到目的地址
I2CWaitAck();
I2CStart();
I2CSendByte(0xa1);//读数据的指令
I2CWaitAck();
while(ucNum--)
{
*pucBuf++ =I2CReceiveByte();//不断从存储器中读数据进入Buffer
if(ucNum)
I2CSendAck();
else
I2CSendNotAck();
}
I2CStop();
}