I2C 24CXX驱动程序(真正实用 全)

上传人:M****1 文档编号:549484036 上传时间:2022-11-06 格式:DOC 页数:14 大小:45KB
返回 下载 相关 举报
I2C 24CXX驱动程序(真正实用 全)_第1页
第1页 / 共14页
I2C 24CXX驱动程序(真正实用 全)_第2页
第2页 / 共14页
I2C 24CXX驱动程序(真正实用 全)_第3页
第3页 / 共14页
I2C 24CXX驱动程序(真正实用 全)_第4页
第4页 / 共14页
I2C 24CXX驱动程序(真正实用 全)_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《I2C 24CXX驱动程序(真正实用 全)》由会员分享,可在线阅读,更多相关《I2C 24CXX驱动程序(真正实用 全)(14页珍藏版)》请在金锄头文库上搜索。

1、#ifndef _24cXX_H#define_24cXX_H/* Includes -*/#include stm32f10x.h#include value.h/#include stdbool.h/* Define -*/* EEPROM Addresses defines */注:32 64 的字地址是16位 2个字节 如果使用32或64请简单修改驱动即可#define WC24cXX 0x00/ 器件地址 写#define RC24cXX 0x01/ 器件地址 读#define USE_24C08 /使用24C08#ifdef USE_24C02#define MAXSIZE24cX

2、X256/ 总容量 Bytes /级联时请修改本参数和硬件驱动#define BLOCK_SIZE256/ 块容量 Bytes#define I2C_PAGESIZE8/ 8个字节每页#endif#ifdef USE_24C04#define MAXSIZE24cXX512/ 总容量 Bytes /级联时请修改本参数和硬件驱动#define BLOCK_SIZE256/ 块容量 Bytes#define I2C_PAGESIZE16/ 16个字节每页#endif#ifdef USE_24C08#define MAXSIZE24cXX1024/ 总容量 Bytes /级联时请修改本参数和硬件驱动

3、#define BLOCK_SIZE256/ 块容量 Bytes#define I2C_PAGESIZE16/ 16个字节每页/* user define */#define YBCV_ADDR_0 0x0000/定义仪表控制数据结构体的EEPROM存储地址0#define YBCV_ADDR_10x0200/定义仪表控制数据结构体的EEPROM存储地址1#define EEPROM_VERIFY YB_CTRL_VALE_SIZE /EEPROM仪表通道修正参数存储地址#endif#ifdef USE_24C16#define MAXSIZE24cXX2048/ 总容量 Bytes#defi

4、ne I2C_PAGESIZE16/ 16个字节每页#endif#ifdef USE_24C32#define MAXSIZE24cXX4096/ 总容量 Bytes /级联时请修改本参数和硬件驱动#define BLOCK_SIZE4096/ 块容量 Bytes#define I2C_PAGESIZE32/ 16个字节每页#endif#ifdef USE_24C64#define MAXSIZE24cXX8192/ 总容量 Bytes /级联时请修改本参数和硬件驱动#define BLOCK_SIZE8192/ 块容量 Bytes#define I2C_PAGESIZE32/ 16个字节每页

5、#endif#define I2CInit I2C_GPIO_Config#define SCL(a) if (a) GPIO_SetBits(GPIOB, GPIO_Pin_10);else GPIO_ResetBits(GPIOB,GPIO_Pin_10)#define SDA(a) if (a) GPIO_SetBits(GPIOB, GPIO_Pin_11);else GPIO_ResetBits(GPIOB,GPIO_Pin_11)#define SCLO GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10)#define SDAO GPIO_ReadI

6、nputDataBit(GPIOB, GPIO_Pin_11)/* Private -*/* Public -*/*uint idata ucSendBuffer8=0x01,0x02,0x04,0x08, 0x10,0x20,0x40,0x80;uint idata ucReceData;uint idata ucReceiveBuffer8;/从器件中读出的多字节数据暂存区*/* Function Declaration -*/extern bool I2C2_Init(void);/I2C初始化/extern bool I2C_ByteWrite(u8* pBuffer, u8 Writ

7、eAddr);/向24cXX中写入1个字节extern bool I2C_PageWrite(u8* pBuffer, u8 BlockCode, u16 WriteAddr, u8 n);/24cXX页写 (不超过一页)extern bool I2C_BlockWrite(u8* pBlock, u8 BlockCode, u16 WriteAddr, u16 n);/24cXX数据块写(不超过BLOCK_SIZE个字节)extern bool I2C_BufferWrite(u8* pBuffer, u16 WriteAddr, u16 n);/24cXX数据写(不超过MAXSIZE24c

8、XX个字节)extern bool I2C_BufferRead(u8* pBuffer, u16 ReadAddr, u16 n);/从24cXX中读出N字节数据(不超过MAXSIZE24cXX个字节)/extern void I2C_EE_WaitEepromStandbyState(void);/等待24CXX内部写周期结束#endif /*_24cXX_H*/* (C) COPYRIGHT 2015 XXXXX * * 文件名 :24cXX.c * 描述 :本函数是xx项目的24cXX的读写函数 * 平台 :Keil 4 MDK stm32 3.5.0库 * 库版本 :基于野火相关资料

9、及程序上优化修改 * 作者 :天涯月下红颜醉 * 时间 :2015.4.19*/* Includes -*/#include 24cXX.h#include value.h#include systick.h#include /* * 函数名:I2C2_Init * 描述 :I2C2初始化 * 输入 :无 * 输出 :无 * 调用 :内部调用 */bool I2C2_Init(void)bool s = true; GPIO_InitTypeDef GPIO_InitStructure; /* 使能与 I2CGPIO 有关的时钟 */RCC_APB2PeriphClockCmd(RCC_APB

10、2Periph_GPIOB,ENABLE); /* PB10-I2C2_SCL、PB11-I2C2_SDA*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; / 普通开漏输出 GPIO_Init(GPIOB, &GPIO_InitStructure);SDA(1);SCL(1);Delay_nop();Delay_nop();if(

11、!SDAO) s = false;if(!SCLO) s = false;SDA(0);Delay_nop();Delay_nop();if(SDAO) s = false;SCL(0);Delay_nop();SDA(0);SCL(0);Delay_nop();Delay_nop();if(SDAO) s = false;if(SCLO) s = false;SCL(1);Delay_nop();Delay_nop();SDA(1);return s;/*开启24cXX的I2C总线*/static bool I2CStart(void)SDA(1);SCL(1);Delay_nop();De

12、lay_nop();if(!SDAO)return false;/SDA线为低电平则总线忙,退出SDA(0);Delay_nop();Delay_nop();if(SDAO)return false;/SDA线为高电平则总线出错,退出SCL(0);Delay_nop();return true;/*关闭24cXX的I2C总线*/static void I2CStop(void)SDA(0);SCL(0);Delay_nop();Delay_nop();SCL(1);Delay_nop();Delay_nop();SDA(1);/*发送 ACK*/static void I2CAck(void)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 系统集成

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号