bsp_IIC.h D:/gitt/MicrochipFor32/bsp_Device/bsp_IIC.h 浏览该文件的文档.00001 /*---------------------------------------------------------------------------------------------------- 00002 # 00003 # Copyright (c) 2022 Yuankang Liang(XerolySkinner) 00004 # 00005 # 本软件按原样提供,无任何明示或暗示 00006 # 在任何情况下,作者都不承担任何损害赔偿责任 00007 # 00008 # 使用的许可声明: 00009 # 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件. 00010 # 2. 免费授予以任何目的,前提是版权声明出现在所有副本中. 00011 # 并且版权声明和许可声明同时出现. 00012 # 3. 你有使用,复制,修改,分发,和销售本软件的许可. 00013 # 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的. 00014 # 5. 本通知不得从任何来源删除或更改. 00015 # 00016 # Yuankang Liang(XerolySkinner) 00017 # E-mail:zabbcccbbaz@163.com 00018 # QQ:2715099320 00019 # Mobile Phone:13005636215 00020 # 00021 # All rights reserved. 00022 */ 00023 00035 #ifdef __cplusplus 00036 #pragma once 00037 #include "varint.h" 00039 //---------------------------------------------------------------------------------------------------- 00040 // 枚举头 00044 enum { 00045 IIC_RESET, 00046 IIC_SET, 00047 IIC_READ 00048 }; 00050 //---------------------------------------------------------------------------------------------------- 00051 // 类目 00056 class bsp_IIC{ 00057 public: 00058 void IIC_WriteOneByte(u8 id, u8 addr, u8 dat); 00059 u8 IIC_ReadOneByte(u8 id, u8 addr); 00060 void IIC_Write(u8 id,u8 addr,u8* dat,u32 len); 00061 void IIC_Read(u8 id,u8 addr,u8* dat,u32 len); 00062 public: 00063 void IIC_Start(void); 00064 void IIC_Stop(void); 00065 void IIC_SendAck(u8 ackbit); 00066 u8 IIC_WaitAck(void); 00067 void IIC_SendByte(u8 byt); 00068 u8 IIC_RecByte(void); 00069 protected: 00077 virtual u8 IIC_SCK(u8 var) = 0; 00085 virtual u8 IIC_SDA(u8 var) = 0; 00091 virtual void IIC_Delay(void) = 0; 00092 }; 00094 #endif 00095