#ifndef __IIC_H
#define __IIC_H
#include"sys.h"
#include"delay.h"
/*
#define RCC_APB2Periph_GPIOA ((uint32_t)0x00000004)
#define RCC_APB2Periph_GPIOB ((uint32_t)0x00000008)
#define RCC_APB2Periph_GPIOC ((uint32_t)0x00000010)
#define RCC_APB2Periph_GPIOD ((uint32_t)0x00000020)
#define RCC_APB2Periph_GPIOE ((uint32_t)0x00000040)
#define RCC_APB2Periph_GPIOF ((uint32_t)0x00000080)
#define RCC_APB2Periph_GPIOG ((uint32_t)0x00000100)
*/
/****************
SDA----PB11
SCL----PB10
****************/
//移植时要注意修改下面接口 PB10 SCL PB11 SDA
#define RCC_IIC_2 0x00000008//就是对应上面的表
#define SDA_OUT_2() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;}//PB11
#define SDA_IN_2() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<12;}//PB11
#define SCL_OUT_2() {GPIOB->CRH&=0XFFFFF0FF;GPIOB->CRH|=3<<8;}//PB10
#define IIC_SDA_2 PBout(11)
#define IIC_SCL_2 PBout(10)
//#define READ_SDA PBin(7)
#define READ_SDA_2 GPIO_ReadInputDataBit(GPIOB , GPIO_Pin_11)
void IIC_Init_2(void);//移植时要重写这个函数
void IIC_Start_2(void);
void IIC_Stop_2(void);
u8 IIC_Wait_Ack_2(void);
void IIC_Ack_2(void);
void IIC_NAck_2(void);
void IIC_Send_Byte_2(u8);
u8 IIC_Read_Byte_2(u8); //读一个字节,ack = 1时, 发送ACK, ack = 0,发送nACK
u8 IIC_ReadByte_2(u8 ,u8);
void IIC_WriteByte_21( u8 DeviceAddr,u8 WriteAddr);
//void delay_nms_2(u16 time);
void IIC_ReadData_2(u8 DeviceAddr,u8 RegAddr,u8 *pData, u8 Count);
void IIC_WriteData_2(u8 DeviceAddr,u8 RegAddr,u8 *pData, u8 Count);
extern void IIC_WriteByte_22( u8 DeviceAddr,u8 WriteAddr,u8 DataToWrite);
#endif
#define __IIC_H
#include"sys.h"
#include"delay.h"
/*
#define RCC_APB2Periph_GPIOA ((uint32_t)0x00000004)
#define RCC_APB2Periph_GPIOB ((uint32_t)0x00000008)
#define RCC_APB2Periph_GPIOC ((uint32_t)0x00000010)
#define RCC_APB2Periph_GPIOD ((uint32_t)0x00000020)
#define RCC_APB2Periph_GPIOE ((uint32_t)0x00000040)
#define RCC_APB2Periph_GPIOF ((uint32_t)0x00000080)
#define RCC_APB2Periph_GPIOG ((uint32_t)0x00000100)
*/
/****************
SDA----PB11
SCL----PB10
****************/
//移植时要注意修改下面接口 PB10 SCL PB11 SDA
#define RCC_IIC_2 0x00000008//就是对应上面的表
#define SDA_OUT_2() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;}//PB11
#define SDA_IN_2() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<12;}//PB11
#define SCL_OUT_2() {GPIOB->CRH&=0XFFFFF0FF;GPIOB->CRH|=3<<8;}//PB10
#define IIC_SDA_2 PBout(11)
#define IIC_SCL_2 PBout(10)
//#define READ_SDA PBin(7)
#define READ_SDA_2 GPIO_ReadInputDataBit(GPIOB , GPIO_Pin_11)
void IIC_Init_2(void);//移植时要重写这个函数
void IIC_Start_2(void);
void IIC_Stop_2(void);
u8 IIC_Wait_Ack_2(void);
void IIC_Ack_2(void);
void IIC_NAck_2(void);
void IIC_Send_Byte_2(u8);
u8 IIC_Read_Byte_2(u8); //读一个字节,ack = 1时, 发送ACK, ack = 0,发送nACK
u8 IIC_ReadByte_2(u8 ,u8);
void IIC_WriteByte_21( u8 DeviceAddr,u8 WriteAddr);
//void delay_nms_2(u16 time);
void IIC_ReadData_2(u8 DeviceAddr,u8 RegAddr,u8 *pData, u8 Count);
void IIC_WriteData_2(u8 DeviceAddr,u8 RegAddr,u8 *pData, u8 Count);
extern void IIC_WriteByte_22( u8 DeviceAddr,u8 WriteAddr,u8 DataToWrite);
#endif