(二)基于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]);
}
}

}
}


延迟函数定义程序:



最后我贴出运行结果:




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


  • 10
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值