iic.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2023-04-10 19813 the first version
  9. */
  10. #ifndef APPLICATIONS_PERI_IIC_IIC_H_
  11. #define APPLICATIONS_PERI_IIC_IIC_H_
  12. /*********************↓ define ↓************************/
  13. /*********************↑ define ↑************************/
  14. /**
  15. *
  16. *
  17. *
  18. *
  19. * */
  20. /*********************↓ include ↓************************/
  21. #include <main.h>
  22. #include <board.h>
  23. /*********************↑ include ↑************************/
  24. /**
  25. *
  26. *
  27. *
  28. *
  29. * */
  30. /*********************↓ extern ↓************************/
  31. /*********************↑ extern ↑************************/
  32. /**
  33. *
  34. *
  35. *
  36. *
  37. * */
  38. /********************↓ declaration ↓***********************/
  39. typedef enum
  40. {
  41. IIC1 = 0,
  42. IIC2 ,
  43. IIC3
  44. }IICDef;
  45. typedef struct
  46. {
  47. GPIO_TypeDef *port; // GPIO
  48. uint16_t SCL_pin; // SCL 引脚
  49. uint16_t SDA_pin; // SDA 引脚
  50. uint8_t SCL_us; // SCL 延时时间
  51. uint8_t SDA_us; // SDA 延时时间
  52. // uint8_t Ack; // 是否回复
  53. uint8_t Devaddr; // 设备地址
  54. }IIC_Info;
  55. void IIC_Init(IICDef i);
  56. void IIC_Start(IICDef i);
  57. void IIC_Stop(IICDef i);
  58. void IIC_WriteByte(IICDef i, uint8_t data);
  59. uint8_t IIC_Wait_Ask(IICDef i);
  60. uint8_t IIC_FindAddr(IICDef i);
  61. uint8_t IIC_AddrCheck(IICDef i , uint8_t *readaddr);
  62. uint8_t IIC_DevReadByte(IICDef i, uint8_t addr);
  63. uint8_t IIC_ReadByte(IICDef i);
  64. uint8_t IIC_MultipleReadByte(IICDef i);
  65. void IIC_DevReadBuf(IICDef i, uint8_t addr, uint8_t *rbuf ,uint8_t len);
  66. void IIC_DevWriteByte(IICDef i, uint8_t addr, uint8_t data);
  67. void IIC_DevWriteBuf(IICDef i, uint8_t addr, uint8_t *wbuf ,uint8_t len);
  68. /********************↑ declaration ↑***********************/
  69. /**
  70. *
  71. *
  72. *
  73. *
  74. * */
  75. /*********************↓ global variables ↓************************/
  76. /*********************↑ global variables ↑************************/
  77. /**
  78. *
  79. *
  80. *
  81. *
  82. * */
  83. #endif /* APPLICATIONS_PERI_IIC_IIC_H_ */