📄 iic.h
字号:
/******************************************************************************
* files name IIC.h
*说明:基于430端口的模拟IIC时序头文件
******************************************************************************/
#ifndef __I2C_H__
#define __I2C_H__
/******************************************************************************
* 定义管脚
* P3.1 ---------------SDA
* P3.3 ---------------SCL
******************************************************************************/
#define SCL BIT3
#define SDA BIT1
/***********************************************************************
** 函数名称: I2C_Set_sck_high
** 功能描述: 时钟线置1
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
***********************************************************************/
extern void I2C_Set_sck_high(void);
/***********************************************************************
** 函数名称: I2C_Set_sck_low
** 功能描述: 时钟线置0
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
***********************************************************************/
extern void I2C_Set_sck_low(void);
/***********************************************************************
** 函数名称: I2C_Set_sda_high
** 功能描述: 数据线置1
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
***********************************************************************/
extern void I2C_Set_sda_high(void);
/***********************************************************************
** 函数名称: I2C_Set_sda_low
** 功能描述: 数据线置0
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
***********************************************************************/
extern void I2C_Set_sda_low(void);
/***********************************************************************
** 函数名称: I2C_Initial
** 功能描述: I2C端口初始化,及时钟线,数据线初始化
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: I2C_Set_sda_high I2C_Set_sck_high
***********************************************************************/
extern void I2C_Initial(void);
/***********************************************************************
** 函数名称: I2C_GetAck
** 功能描述: 主机读取ACK信号的函数
** 输 入: i : 无
** 输 出: unsigned char 输出1 读到ACK值 输出0 未读到ACK值
** 全局变量: 无
** 调用模块: I2C_Set_sda_high I2C_Set_sck_high
** I2C_Set_sda_low I2C_Set_sck_low
***********************************************************************/
extern unsigned char I2C_GetAck(void);
/***********************************************************************
** 函数名称: I2C_SetAck
** 功能描述: 主机发送ACK信号的函数
** 输 入: unsigned char ack :1 设置ACK 0 设置NACK
** 输 出: 无
** 全局变量: 无
** 调用模块: I2C_Set_sda_high I2C_Set_sck_high
** I2C_Set_sda_low I2C_Set_sck_low
***********************************************************************/
extern void I2C_SetAck(unsigned char ack);
/***********************************************************************
** 函数名称: I2C_Start
** 功能描述: 主机发送START信号
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: I2C_Set_sda_high I2C_Set_sck_high
** I2C_Set_sda_low I2C_Set_sck_low
***********************************************************************/
extern void I2C_Start(void);
/***********************************************************************
** 函数名称: I2C_Stop
** 功能描述: 主机发送STOP信号
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: I2C_Set_sda_high I2C_Set_sck_high
** I2C_Set_sda_low I2C_Set_sck_low
***********************************************************************/
extern void I2C_Stop(void);
/***********************************************************************
** 函数名称: I2C_TxhTol
** 功能描述: 主机发送一字节数据 MSB FIRST
** 输 入: unsigned char nValue 发送的数据
** 输 出: 无
** 全局变量: 无
** 调用模块: I2C_Set_sda_high I2C_Set_sck_high
** I2C_Set_sda_low I2C_Set_sck_low
***********************************************************************/
extern void I2C_TxhTol(unsigned char nValue);
/***********************************************************************
** 函数名称: I2C_RxByte
** 功能描述: 主机读取一字节数据
** 输 入: 无
** 输 出: unsigned char 返回读回的数据
** 全局变量: 无
** 调用模块: I2C_Set_sda_high I2C_Set_sck_high
** I2C_Set_sda_low I2C_Set_sck_low
***********************************************************************/
extern unsigned char I2C_RxByte(void);
/***********************************************************************
** 函数名称: TWI_write
** 功能描述: 主机向从机地址为 WSLA 寄存器地址为 addr 的寄存器发送
** len 字节数据 数据头指针为*buf
** 输 入: WSLA 从机读地址 addr 从机寄存器地址
** *buf 指向发送数据的指针 len 字节数
** 输 出: 无
** 全局变量: 无
** 调用模块: I2C_GetAck I2C_SetAck I2C_Start I2C_Stop I2C_TxhTol
***********************************************************************/
extern void TWI_write(unsigned char WSLA,unsigned char addr,
unsigned char *buf,unsigned char len);
/***********************************************************************
** 函数名称: TWI_read
** 功能描述: 主机从从机地址为 WSLA 寄存器地址为 addr 的寄存器读取
** len 字节数据 读取的数据存入指针为*buf的地址
** 输 入: WSLA 从机读地址 addr 从机寄存器地址
** *buf 指向存放读取数据地址的指针 len 字节数
** 输 出: 无
** 全局变量: 无
** 调用模块: I2C_GetAck I2C_SetAck I2C_Start I2C_Stop I2C_TxhTol
** I2C_RxByte
***********************************************************************/
extern void TWI_read(unsigned char WSLA,unsigned char addr,unsigned char *buf,
unsigned char len);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -