I2C.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef __I2C_H__
  2. #define __I2C_H__
  3. /* Definition for I2Cx clock resources */
  4. #define BSP_I2Cx_SPEED 400000
  5. #define BSP_I2Cx_SLAVE_ADDRESS 0xf0
  6. /* Definition for I2Cx Pins, PULL UP in hw */
  7. #define BSP_I2Cx_SCL_GPIO_PORT GPIOB
  8. #define BSP_I2Cx_SCL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
  9. #define BSP_I2Cx_SCL_PIN GPIO_PIN_10
  10. #define BSP_I2Cx_SCL_PULL GPIO_NOPULL
  11. #define BSP_I2Cx_SDA_GPIO_PORT GPIOB
  12. #define BSP_I2Cx_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
  13. #define BSP_I2Cx_SDA_PIN GPIO_PIN_11
  14. #define BSP_I2Cx_SDA_PULL GPIO_NOPULL
  15. #define BSP_EEROM_WRITE_PROTECT_PORT GPIOB
  16. #define BSP_EEROM_WRITE_PROTECT_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
  17. #define BSP_EEROM_WRITE_PROTECT_PIN GPIO_PIN_0
  18. #define BSP_EEROM_WRITE_PROTECT_PULL GPIO_NOPULL
  19. #define BSP_EEROM_WRITE_ENABLE() HAL_GPIO_WritePin(BSP_EEROM_WRITE_PROTECT_PORT, BSP_EEROM_WRITE_PROTECT_PIN, GPIO_PIN_RESET)
  20. #define BSP_EEROM_WRITE_FORBIDEN() HAL_GPIO_WritePin(BSP_EEROM_WRITE_PROTECT_PORT, BSP_EEROM_WRITE_PROTECT_PIN, GPIO_PIN_SET)
  21. #define BSP_RTC_INTERRUPT_PORT GPIOB
  22. #define BSP_RTC_INTERRUPT_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
  23. #define BSP_RTC_INTERRUPT_PIN GPIO_PIN_1
  24. #define BSP_RTC_INTERRUPT_PULL GPIO_NOPULL
  25. #define BSP_RTC_INTERRUPT_IRQn EXTI1_IRQn
  26. #define BSP_RTC_INTERRUPT_PRIORITY 0x05
  27. /*Device Address*/
  28. #define BSP_RTC_WR_ADDRESS 0x64
  29. #define BSP_RTC_RD_ADDRESS 0x65
  30. #define BSP_EEROM_WR_ADDRESS 0xA0
  31. #define BSP_EEROM_RD_ADDRESS 0xA1
  32. #define BSP_I2Cx_SCL_HIGH() HAL_GPIO_WritePin(BSP_I2Cx_SCL_GPIO_PORT, BSP_I2Cx_SCL_PIN, GPIO_PIN_SET)
  33. #define BSP_I2Cx_SCL_LOW() HAL_GPIO_WritePin(BSP_I2Cx_SCL_GPIO_PORT, BSP_I2Cx_SCL_PIN, GPIO_PIN_RESET)
  34. #define BSP_I2Cx_SDA_HIGH() HAL_GPIO_WritePin(BSP_I2Cx_SDA_GPIO_PORT, BSP_I2Cx_SDA_PIN, GPIO_PIN_SET)
  35. #define BSP_I2Cx_SDA_LOW() HAL_GPIO_WritePin(BSP_I2Cx_SDA_GPIO_PORT, BSP_I2Cx_SDA_PIN, GPIO_PIN_RESET)
  36. #define BSP_I2Cx_SCL_STATUS() HAL_GPIO_ReadPin(BSP_I2Cx_SCL_GPIO_PORT, BSP_I2Cx_SCL_PIN)
  37. #define BSP_I2Cx_SDA_STATUS() HAL_GPIO_ReadPin(BSP_I2Cx_SDA_GPIO_PORT, BSP_I2Cx_SDA_PIN)
  38. //#define I2C_DELAY_COUNT 12
  39. #define I2C_DELAY_COUNT 2
  40. void I2C_Device_Init(void);
  41. void I2C_GPIO_Out_Config(void);
  42. void I2C_GPIO_In_Config(void);
  43. void I2C_Start(void);
  44. void I2C_Stop(void);
  45. uint8_t I2C_Wait_Ack(void);
  46. void I2C_Ack(void);
  47. void I2C_NAck(void);
  48. #endif