/* -----------------------------------------宏定义-----------------------------------------*/
/* -----------------------------------------头文件-----------------------------------------*/
#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
上一篇:[单片机][IIC/I2C][APDS9960] 手势传感器 4种手势
下一篇:单片机 温度调控 大功率设备调整PWM输出
推荐阅读最新更新时间:2024-11-10 06:37
设计资源 培训 开发板 精华推荐
- SGM6232降压模块
- 2021Cap_Dejavu智能车
- 使用符合 EN55022 B 类(24Vin 和 48Vin,单输出)具有 EMC 滤波的 RP40-4812SFR DC/DC 转换器的典型应用
- NCP1032 低功耗 PWM 控制器的典型应用,具有片上电源开关和电信系统启动电路
- DER-535 - 65 W 电源
- Silicon Labs的英特尔FPGA时序解决方案
- AM1DR-0509SZ 9V 1 瓦 DC-DC 转换器的典型应用
- AP7362 1.5A 低静态电流、超低压差可调输出线性稳压器的典型应用
- 我又行了队
- 在主/从中使用 LTC3612HFE 降压稳压器以使用 1MHz 外部时钟实现一致跟踪输出的典型应用
- ADI有奖下载活动之3 两线环路供电变送器解决方案
- 阅读并了解 TE Connectivity 无创想,不奇迹 精彩专题,答题有礼!
- 【MPS有奖分享】便携式多功能电工台的核“芯”功能测试与结构设计
- 有奖直播:使用 NI CompactDAQ 和 LabVIEW构建基于传感器的测试系统
- 报名直播赢【手环、摄像头、雨伞、手机支架】罗德与施瓦茨USB 3.2一致性测试
- 有奖直播|多款MSP430™片上Sigma-Delta ADC助力高精度信号检测应用 报名中
- 有奖问答 | Azure Sphere物联网解决方案 问答排位赛,你能霸屏多久?
- 爱“拼”才会赢 英飞凌栅极驱动IC拼图闯关 活动开始啦!
- TI 处理器主题月:三场直播精彩这个八月!报名且看直播就能得好礼!更有提问奖相送!