iic2.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef __IIC2_H__
  2. #define __IIC2_H__
  3. #include "gd32f10x.h"
  4. //IIC1
  5. //#define IIC2_WP_PORT GPIOE
  6. //#define IIC2_WP_PIN GPIO_PIN_14
  7. #define IIC2_SDA_PORT GPIOB
  8. #define IIC2_SDA_PIN GPIO_PIN_11
  9. #define IIC2_SCL_PORT GPIOB
  10. #define IIC2_SCL_PIN GPIO_PIN_10
  11. #define IIC2_SDA_IN() {GPIO_CTL1(GPIOB) &= 0xFFFF0FFF;GPIO_CTL1(GPIOB) |= (0x00000008<<(4*3));} //PB11 输入模式
  12. #define IIC2_SDA_OUT() {GPIO_CTL1(GPIOB) &= 0xFFFF0FFF;GPIO_CTL1(GPIOB) |= (0x00000007<<(4*3));} //PB11 输出模式,开漏输出
  13. #define IIC2_SCL(n) (n?gpio_bit_set(IIC2_SCL_PORT, IIC2_SCL_PIN):gpio_bit_reset(IIC2_SCL_PORT, IIC2_SCL_PIN))
  14. #define IIC2_SDA(n) (n?gpio_bit_set(IIC2_SDA_PORT, IIC2_SDA_PIN):gpio_bit_reset(IIC2_SDA_PORT, IIC2_SDA_PIN))
  15. //#define IIC2_SCL_HIGH gpio_bit_set(IIC2_SCL_PORT, IIC2_SCL_PIN)
  16. //#define IIC2_SCL_LOW gpio_bit_reset(IIC2_SCL_PORT, IIC2_SCL_PIN)
  17. //#define IIC2_SDA_HIGH gpio_bit_set(IIC2_SDA_PORT, IIC2_SDA_PIN)
  18. //#define IIC2_SDA_LOW gpio_bit_reset(IIC2_SDA_PORT, IIC2_SDA_PIN)
  19. #define IIC2_READ_SDA gpio_input_bit_get(IIC2_SDA_PORT, IIC2_SDA_PIN) //输入SDA
  20. void iic2_init(void);
  21. void IIC2_Start(void);
  22. void IIC2_Stop(void);
  23. u8 IIC2_Wait_Ack(void);
  24. void IIC2_Ack(void);
  25. void IIC2_NAck(void);
  26. void IIC2_Send_Byte(u8 txd);
  27. u8 IIC2_Read_Byte(u8 ack);
  28. float Temp_test(void);
  29. #endif