IIC_Base.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef __PROBEIIC_BASE_H
  2. #define __PROBEIIC_BASE_H
  3. #include "sys.h"
  4. //////////////////////////////////////////////////////////////////////////////////
  5. // 2202/12/X GHz_ljw
  6. //////////////////////////////////////////////////////////////////////////////////
  7. //IO方向设置
  8. #define SDA_IN() {GPIOB->MODER&=~(3<<(7*2));GPIOB->MODER|=0<<7*2;} //PB 输入模式
  9. #define SDA_OUT() {GPIOB->MODER&=~(3<<(7*2));GPIOB->MODER|=1<<7*2;} //PB 输出模式
  10. //IO操作函数
  11. #define IIC_SCL PBout(6) //SCL
  12. #define IIC_SDA PBout(7) //SDA
  13. #define READ_SDA PBin(7) //输入SDA
  14. //IIC所有操作函数
  15. void IIC_Init(void); //初始化IIC的IO口
  16. void IIC_Start(void); //发送IIC开始信号
  17. void IIC_Stop(void); //发送IIC停止信号
  18. void IIC_Send_Byte(u8 txd); //IIC发送一个字节
  19. u8 IIC_Read_Byte(unsigned char ack);//IIC读取一个字节
  20. u8 IIC_Wait_Ack(void); //IIC等待ACK信号
  21. void IIC_Ack(void); //IIC发送ACK信号
  22. void IIC_NAck(void); //IIC不发送ACK信号
  23. void IIC_Write_One_Byte(u8 daddr,u8 addr,u8 data);
  24. u8 IIC_Read_One_Byte(u8 daddr,u8 addr);
  25. #endif