/* -----------------------------------------宏定义-----------------------------------------*/
/* -----------------------------------------头文件-----------------------------------------*/
#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
上一篇:单片机 N76E003 实现 QC2.0 QC3.0 USB Type-C协议
下一篇:[ESP32][esp-idf] https和mqtt同时签名冲突解决
推荐阅读最新更新时间:2024-11-08 15:21
设计资源 培训 开发板 精华推荐
- ATSAMA5D2-XULT、SAMA5D2 Xplained Ultra 评估套件,用于基于 SMART SAMA5D2 ARM Cortex-A5 的嵌入式微处理器单元 (eMPU)
- 10kHZ-255MHz 信号发生器 OLED LCD
- 用于雷达和声纳的 5V 模拟放大
- 用于开/关控制应用的 AM2G-4818DZ ±18V 2 瓦 DC-DC 转换器的典型应用
- I2C接口的CAT9532 16位可编程LED调光器的典型应用
- TA78L05F 三端正电压稳压器典型应用
- 带堵转检测的线性风扇驱动应用电路
- 使用 MIC4575、1V 低输出电压降压稳压器的典型应用电路
- 具有折返电流限制的 OP295GPZ 低压差、500mA 稳压器的典型应用
- STM32 EXtend