/* -----------------------------------------宏定义-----------------------------------------*/
/* -----------------------------------------头文件-----------------------------------------*/
#include "main.h"
/* -----------------------------------------结构体定义-------------------------------------*/
code IIC_TYPE PCA9540BD = {2, 0xE0};
/* -----------------------------------------全局变量定义-----------------------------------*/
/* -----------------------------------------应用程序---------------------------------------*/
void PCA9540BD_Init(void)
{
IIC_Init(); // I2C初始化
}
/*********************************************
函数名:PCA9540BD_Write_DATA
功 能:写 地址 数据
形 参:addr 地址 dat 数据
返回值:
备 注:
作 者:薛建强
时 间:2020/05/09
**********************************************/
void PCA9540BD_Write_DATA(const uint8_t addr, const uint8_t DATA)
{
if (addr);
IIC_Start(); // 启动
IIC_WriteByte(PCA9540BD.ADDR); // 设备地址
IIC_Wait_ACK(); // 等待数据响应
IIC_WriteByte(DATA); // 发送数据
IIC_Wait_ACK(); // 等待数据响应
IIC_Stop(); // 停止
}
/*********************************************
函数名:PCA9540BD_Read_DATA
功 能:读地址数据
形 参:addr--寄存器地址
返回值:
备 注:
作 者:薛建强
时 间:2020/05/09
**********************************************/
uint8_t PCA9540BD_Read_DATA(const uint8_t addr)
{
uint8_t GET_DATA = 0;
if (addr);
IIC_Start(); // 启动
IIC_WriteByte(PCA9540BD.ADDR | 1); // 发送地址
IIC_Wait_ACK(); // 等待数据响应
GET_DATA = IIC_ReadByte(); // 获取数据
IIC_Wait_ACK(); // 等待数据响应
IIC_Stop(); // 停止
return GET_DATA;
}
/*********************************************
函数名:PCA9540BD_Switch_Ch
功 能:选择IIC通道
形 参:0--IIC0 1--IIC1
返回值:
备 注:
作 者:薛建强
时 间:2020/05/09
使 用:
**********************************************/
void PCA9540BD_Switch_Ch(const uint8_t ch)
{
if (ch == 0)
{
PCA9540BD_Write_DATA(0, 0x04);
}
else if (ch == 1)
{
PCA9540BD_Write_DATA(0, 0x05);
}
}
/*********************************************
函数名:PCA9540BD_Switch_Ch
功 能:关闭IIC通道
形 参:
返回值:
备 注:
作 者:薛建强
时 间:2020/05/09
使 用:
**********************************************/
void PCA9540BD_Off_Ch(void)
{
PCA9540BD_Write_DATA(0, 0x00);
}
#ifndef _PCA9540BD_H
#define _PCA9540BD_H
/* -----------------------------------------宏定义-----------------------------------------*/
/* -----------------------------------------头文件-----------------------------------------*/
#include "main.h"
/* -----------------------------------------结构体定义-------------------------------------*/
/* -----------------------------------------全局变量定义-----------------------------------*/
/* -----------------------------------------应用程序---------------------------------------*/
void PCA9540BD_Init(void);
void PCA9540BD_Write_DATA(const uint8_t addr, const uint8_t DATA);
uint8_t PCA9540BD_Read_DATA(const uint8_t addr);
void PCA9540BD_Switch_Ch(const uint8_t ch);
void PCA9540BD_Off_Ch(void);
#endif