(二)基于STM32f103的I2C通信接口的EPPROM模块(24C256)读写程序详解

  接上面的文章!!!

  第五步:我们要封装2个函数,一个用于读8位数据,一个用于写8位数据,程序如下:



第六步:我们要利用上面2个函数再封装2个函数,一个用于向EPPROM指定的地址写指定的一字节数据,一个用于读EPPROM指定的地址的数据。程序如下:




第七步:我们要封装2个函数,用于多字节的读写!程序如下:



最后我们就是主函数了!当然这里利用串口发送数据来显示读写的数据!!!

const u8 My2[]={"地址100开始的数据 \r\n"};  //定义了一个多字节的数据
#define MySize2 sizeof(My2)                       //该数据长度

int main(void)
{
u8 i,datatemp[MySize2];     //用于读取数据的存储数组

        delay_init(72);                   //这个最好加上 用于产生延时 下面我贴出它的定义 不明白你就按我的写就可以了!
USART_PC_Init(115200);  //串口配置
I2C_EPPROM_Init();         //这个就是初始化了

I2C_EPPROM_Write(100,(u8 *)My2,MySize2);  //向100开始的地址往后写入MySize个数据
//delay_ms(100);

while(1)
{
I2C_EPPROM_Read(100,datatemp,MySize2);  //读取100开始的地址向后MySize的数据


for(i=0;i<MySize2;i++)   //这个是发送串口的函数,你可以用printf直接输出datatemp数组
{
if(datatemp[i] != '\0')
{
    USART_PC_SendByte(USART1,datatemp[i]);
}
}

}
}


延迟函数定义程序:



最后我贴出运行结果:




到此结束,多多指教!!!


你可能感兴趣的:(通信,博客,stm32,IIC,EPPROM,24C256,I2,SDA_OUTSDA_IN)