📄 i2c_24c02.c
字号:
/****************************************Copyright (c)**************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name: I2C_24C02.c
** Last modified Date: 2006-11-15
** Last Version: v1.0
** Description: Stellaris系列单片机模拟I2C主方式读写CAT24C02。
**
**------------------------------------------------------------------------------------------------------
** Created By: zha jinzhong
** Created date: 2006-11-15
** Version: v1.0
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Description:
**
********************************************************************************************************/
/*#include "hw_i2c.h"
#include "hw_ints.h"
#include "hw_memmap.h"
#include "hw_types.h"
#include "gpio.h"
#include "i2c.h"
#include "interrupt.h"
#include "sysctl.h" */
#include <includes.h>
#define CSI24c02 (0x50<<1) // 从机地址,注意需将原从机地址左移一位。
#define writeaddr 0x00 // 对24c02操作的子地址。
#define readaddr 0x00
#define rightled GPIO_PIN_4 // 数据判断指示灯的设置。
#define wrongled GPIO_PIN_5
#define STATE_IDLE 0 // I2C总线的相关的操作状态。
// 状态0,总线空闲状态。
#define STATE_WRITE_NEXT 1 // 状态1,写下一个数据状态。
#define STATE_WRITE_FINAL 2 // 状态2,写最后一个数据。
#define STATE_WAIT_ACK 3 // 状态3,返回一个应答信号,以指示读操作已经完成。
#define STATE_SEND_ACK 4 // 状态4,等待应答信号。
#define STATE_READ_ONE 5 // 状态5,读取一个字节的数据。
#define STATE_READ_FIRST 6 // 状态6,读取字符串的首数据。
#define STATE_READ_NEXT 7 // 状态7,读取下一个数据。
#define STATE_READ_FINAL 8 // 状态8,读取最后一个数据。
#define STATE_READ_WAIT 9 // 状态9,读取数据的最终状态。
//-----------------------------------------------------------------------------------------
// 此变量存储将被发送或接收的数据。
//-----------------------------------------------------------------------------------------
//static unsigned char *g_pucData = 0;
//static unsigned long g_ulCount = 0;
//-----------------------------------------------------------------------------------------
// 中断服务程序的当前状态。
//-----------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------
//
// EEPROM写操作
// 输入参数:puData: 待发送的数据。
// ulOffset: 器件的子地址。
// ulCount: 待发送数据的个数。
// 返回参数:无。
//-----------------------------------------------------------------------------------------
void EEPROMWrite(unsigned char *pucData,unsigned long ulOffset,unsigned long ulCount)
{
ISendStr(CSI24c02, ulOffset, 1, pucData, ulCount);
}
//-----------------------------------------------------------------------------------------
//
// EEPROM读操作
// 输入参数:puData: 读取的数据。
// ulOffset: 器件的子地址。
// ulCount: 读取数据的个数。
// 返回参数:无。
//
//-----------------------------------------------------------------------------------------
void EEPROMRead(unsigned char *pucData, unsigned long ulOffset,unsigned long ulCount)
{
IRcvStr(CSI24c02, ulOffset, 1, pucData, ulCount);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -