找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1595|回复: 0
打印 上一主题 下一主题
收起左侧

stm32f103 AT24c_xx驱动程序

[复制链接]
跳转到指定楼层
楼主
ID:323744 发表于 2020-2-11 18:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32单片机源程序如下:
  1. #include <sys.h>
  2. #include <at24c_xx.h>
  3. #include <delay.h>
  4. #include <I2c.h>

  5. #if EN_AT24C_xx

  6. #define AT24C_xx_ADDR  0xA0   //写设备地址
  7. #define AT24C_xx_WRITE 0xA1   //读设备地址


  8. ////向AT24C_xx指定的地址写入一个字节
  9. //REG_ADD写入的地址
  10. //dat 要写入的数据
  11. void AT24C_xx_Write_Byte(unsigned char REG_ADD, unsigned char dat)
  12. {       
  13.   IIC_Start();
  14.         IIC_Send_Byte(AT24C_xx_ADDR);//发送写命令并检查应答位
  15.   IIC_Wait_Ack();
  16.         IIC_Send_Byte(REG_ADD);
  17.         IIC_Wait_Ack();
  18.         IIC_Send_Byte(dat);        //发送数据
  19.         IIC_Wait_Ack();
  20.         IIC_Stop();
  21.         delay_ms(5);
  22. }
  23. //读取地数据
  24. // reg——add  要读取的寄存器
  25. unsigned char AT24C_xx_Read_Byte(unsigned char REG_ADD)
  26. {       
  27.         u8 ReData;
  28.         IIC_Start();       
  29.         IIC_Send_Byte(AT24C_xx_ADDR);//发送写命令并检查应答位       
  30.   IIC_Wait_Ack();
  31.   IIC_Send_Byte(REG_ADD);        //确定要操作的寄存器
  32.         IIC_Wait_Ack();
  33.         IIC_Start();        //启动总线
  34.         IIC_Send_Byte(AT24C_xx_WRITE);        //发送读取命令
  35.         IIC_Wait_Ack();
  36.         ReData = IIC_Read_Byte(0);                //读取数据,加发送非应答
  37.         IIC_Stop();
  38.         return ReData;
  39. }
  40. #endif
复制代码

所有资料51hei提供下载:
AT24c_xx.rar (838 Bytes, 下载次数: 36)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表