首页 > 其他分享 >IIC模拟 && E2PROM

IIC模拟 && E2PROM

时间:2024-08-12 09:49:36浏览次数:12  
标签:&& void uint8 uint16 IIC E2PROM ROM24CXX define

IIC模拟 && E2PROM



 

IIC_eeprom.h
#ifndef __IIC_EEPROM_H__
#define __IIC_EEPROM_H__


/*****************************************************************************************
型号      Byte容量      页数    页内字节数         WORD_ADDR位数 WORD_ADDR字节数
x24C01      128Byte      16页     8Byte                7bit            1Byte
x24C02      256Byte      32页       8Byte                8bit            1Byte
x24C04      512Byte      32页       16Byte        9bit            1Byte
x24C08      1024Byte      64页       16Byte        10bit           1Byte
x24C16      2048Byte      128页       16Byte        11bit           1Byte
x24C32      4096Byte      128页       32Byte        12bit           2Byte
x24C64      8192Byte      256页       32Byte        13bit           2Byte
x24C128      16384Byte      256页       64Byte        14bit           2Byte
x24C256      32768Byte      512页       64Byte        15bit           2Byte
x24C512      65536Byte      512页       128Byte        16bit           2Byte
*****************************************************************************************/

#define AT24C01        127
#define AT24C02        255
#define AT24C04        511
#define AT24C08        1023
#define AT24C16        2047
#define AT24C32        4095
#define AT24C64        8191
#define AT24C128    16383
#define AT24C256    32767  

#define EE_TYPE AT24C128

#define ACK             (0)
#define NO_ACK          (1)
#define IIC_SCL_PIN     PC1
#define IIC_SDA_PIN     PC0
#define IIC_SDA_OUT()   GPIO_SetMode(PC, BIT0, GPIO_MODE_OUTPUT)
#define IIC_SDA_IN()    GPIO_SetMode(PC, BIT0, GPIO_MODE_INPUT)
#define SCL_HIGH()      PC1 = 1
#define SCL_LOW()       PC1 = 0
#define SDA_HIGH()      PC0 = 1
#define SDA_LOW()       PC0 = 0
#define SDA_READ()      PC0

#define Device_ADDR     0xA0
#define WRITE_FLAG      0
#define READ_FLAG       1

void IIC_Init(void);
void IIC_Start(void);
void IIC_Stop(void);
void IIC_SendAck(void);
void IIC_SendNoAck(void);
uint8_t IIC_WaitforAck(void);
void IIC_SendByteData(uint8_t data);
uint8_t IIC_RcvByteData(uint8_t ackFlag);
void ROM24CXX_WriteOneByte(uint16_t WriteAddr, uint8_t DataToWrite);
uint8_t ROM24CXX_ReadOneByte(uint16_t ReadAddr);
void ROM24CXX_WriteLenByte(uint16_t WriteAddr, uint32_t DataToWrite, uint8_t Len);
void ROM24CXX_Write(uint16_t WriteAddr, uint8_t *pBuffer, uint16_t NumToWrite);
uint32_t ROM24CXX_ReadLenByte(uint16_t ReadAddr, uint8_t Len);
void ROM24CXX_Read(uint16_t ReadAddr, uint8_t *pBuffer, uint16_t NumToRead);
uint8_t ROM24CXX_Check(void);
void Eeprom_Proc(void);


#endif
View Code

 

        IIC_eeprom.c                        

标签:&&,void,uint8,uint16,IIC,E2PROM,ROM24CXX,define
From: https://www.cnblogs.com/panda-w/p/18354375

相关文章

  • STM32之IIC协议
    物理层 1.从机数量选择地址限制:IIC协议本身没有严格规定总线上device最大数目,从理论上看,IIC能挂的device数目取决于能表示的最大地址空间,在7位地址模式下,减去0x00地址不可用,理论上可以挂2^7-1=127个设备。总线电容限制:由于器件的管脚都是有输入电容的,PCB上......
  • 关于武汉芯景科技有限公司的带中断及复位功能2选1IIC主选择芯片XJ9541开发指南(兼容PC
    一、芯片引脚介绍1.芯片引脚2.引脚描述二、典型应用电路三、功能描述1.Register02.Register13.Register2四、程序代码    此处只展示master0的代码,master1也可以直接套用此代码XJ9541master0.CPP#include"Arduino.h"#include<Wire.h>#inclu......
  • 3 IIC总线
    3IIC总线1、基本概念1.1IIC总线定义1.2IIC总线协议概念2以AT24C02为例说明时序2.1基本特性2.2利用GPIO模拟IIC2.3对AT24C02的操作2.4重定向printf1、基本概念1.1IIC总线定义定义:两线式串行总线两线式:说明处理器和外设之间只需两根信号线,分别是SCL时钟......
  • AT24C02(IIC)
    AT24C02概述:AT24C02是一个2K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能主要特点:存储容量:2Kbit(256字节),可用作保存小块配置数据......
  • 【I²C协议】STC89C51单片机IIC通信(代码+原理)
    STC89C51单片机IIC通信什么是I²C协议特点构成通信协议开始信号、结束信号、应答信号数据传输代码示例什么是I²C协议IIC,即I²C,全称Inter-IntegratedCircuit,字面上的意思是集成电路之间,它其实是I²CBus简称,所以中文应该叫集成电路总线,是由PHILIPS公司在80年......
  • msp430f5529lp移植OLED屏幕 iic 4针 ccs
    OLED.C  代码私发,开发环境ccs......
  • stm32 - IIC
    目录STM32-IIC1.基本概念2.引脚说明SDASCK/SCL3.传输方向4.通信过程1.空闲状态2.开始信号3.数据发送4.应答信号5.数据接收6.停止信号STM32-IIC1.基本概念半双工同步通信的串行通信接口2.引脚说明SDASCK/SCLIIC总线只需要两根引脚就可以实现通信,一根是数......
  • IIC初了解
    引脚说明IIC需要俩根引脚可以实现通信,一根是SDA(SerialData),另一根是SCL(SerialClock)所有通过IIC接口通信的外围器件都挂载到IIC总线上。IIC的总线必须有主器件提供。每个从器件由于没有片选引脚,所以每个从器件都需要有自己独立的器件地址。SDA引脚和SCL的输出模式一般都要输......
  • 串口、IIC、SPI的优缺点
    串口、IIC、SPI的优缺点串口(SerialPort)串口通信是一种基本的串行通信方式,它通过串行数据线(TX和RX)进行数据的发送和接收。串口通信通常用于微控制器与PC或其他设备之间的通信。特点:简单易用,硬件实现成本低。通信速率较低,适合长距离通信。可以实现全双工通信(同时发送和接收......
  • IIC驱动--TM1651
     /*********************************************************************************@fileGPIO_Toggle\main.c*@authorMCDApplicationTeam*@versionV2.0.1*@date18-November-2011*@briefThisfilecontainsthemainfuncti......