#ifndef __MYIIC_H__
#define __MYIIC_H__
#include "ht16c23.h"
#include "gpio.h"
//#include "stm8s_gpio.h"	

#define  u8  unsigned char

////IO方向设置
////#define SDA_IN()  {I_GPIO_Init();}
////#define SDA_OUT() {O_GPIO_Init();}

////IO操作函数	 
#define IIC_SCL_H()       (GPIO_SetBits(GPIOA, GPIO_Pin_10))	
#define IIC_SCL_L()       (GPIO_ResetBits(GPIOA, GPIO_Pin_10))
#define IIC_SDA_H()       (GPIO_SetBits(GPIOA, GPIO_Pin_9))	
#define IIC_SDA_L()       (GPIO_ResetBits(GPIOA, GPIO_Pin_9))	
#define READ_SDA()        (GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9))
//IO方向设置
//#define SDA_IN()  {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8<<12;}
//#define SDA_OUT() {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=3<<12;}

//IO操作函数	 
//#define IIC_SCL    PCout(12) //SCL
//#define IIC_SDA    PCout(11) //SDA	 
//#define READ_SDA   PCin(11)  //输入SDA 

//IIC所有操作函数
void IIC_Init(void);                //初始化IIC的IO口				 
void IIC_Start(void);				//发送IIC开始信号
void IIC_Stop(void);	  			//发送IIC停止信号
void IIC_Send_Byte(u8 txd);			//IIC发送一个字节
u8 IIC_Read_Byte(unsigned char ack);//IIC读取一个字节
u8 IIC_Wait_Ack(void); 				//IIC等待ACK信号
void IIC_Ack(void);					//IIC发送ACK信号
void IIC_NAck(void);				//IIC不发送ACK信号

void IIC_Write_One_Byte(u8 daddr,u8 addr,u8 data);
u8 IIC_Read_One_Byte(u8 daddr,u8 addr);	

void SDA_OUT(void);
void SDA_IN(void);

#endif
















