myRadio_gpio.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. #ifndef __MYRADIO_GPIO_H_
  2. #define __MYRADIO_GPIO_H_
  3. #include <stdint.h>
  4. #include <stdbool.h>
  5. #include "stm32f10x.h"
  6. #include "stm32f10x_gpio.h"
  7. #include "stm32f10x_spi.h"
  8. #include "stm32f10x_it.h"
  9. #include "board.h"
  10. #define SPI_HARD
  11. //已经在keil->Options for Target->C/C++中定义
  12. // #define MODULE_IS_1W
  13. typedef void (*RADIO_GPIO_CALLBACK)(uint8_t index);
  14. //-------------射频模块引脚映射到转接板排针---------------
  15. #ifdef MODULE_IS_1W
  16. #define RF_SX128x_RST_PIN BOARD_PIN_SPI_GPIOA //
  17. #define RF_SX128x_RST_PORT BOARD_PORT_SPI_GPIOA
  18. #define RF_SX128x_RST RF_SX128x_RST_PORT, RF_SX128x_RST_PIN //
  19. //
  20. #define RF_SX128x_BUSY_PIN BOARD_PIN_SPI_GPIOD //
  21. #define RF_SX128x_BUSY_PORT BOARD_PORT_SPI_GPIOD
  22. #define RF_SX128x_BUSY RF_SX128x_BUSY_PORT, RF_SX128x_BUSY_PIN //
  23. //IO1用于射频中断响应
  24. #define RF_SX128x_IO1_PIN BOARD_PIN_SPI_GPIOB //
  25. #define RF_SX128x_IO1_PORT BOARD_PORT_SPI_GPIOB
  26. #define RF_SX128x_IO1 RF_SX128x_IO1_PORT, RF_SX128x_IO1_PIN //
  27. //
  28. #define RF_SX128x_IO2_PIN BOARD_PIN_SPI_GPIOE //
  29. #define RF_SX128x_IO2_PORT BOARD_PORT_SPI_GPIOE
  30. #define RF_SX128x_IO2 RF_SX128x_IO2_PORT, RF_SX128x_IO2_PIN //
  31. //
  32. #define RF_SX128x_IO3_PIN BOARD_PIN_SPI_GPIOC //
  33. #define RF_SX128x_IO3_PORT BOARD_PORT_SPI_GPIOC
  34. #define RF_SX128x_IO3 RF_SX128x_IO3_PORT, RF_SX128x_IO3_PIN //
  35. //外部PA和LNA控制脚
  36. #define RF_EXTPA_RE_PIN BOARD_PIN_SPI_GPIOE //
  37. #define RF_EXTPA_RE_PORT BOARD_PORT_SPI_GPIOE
  38. #define RF_EXTPA_RE RF_EXTPA_RE_PORT, RF_EXTPA_RE_PIN //
  39. #define RF_EXTPA_TE_PIN BOARD_PIN_SPI_GPIOF //
  40. #define RF_EXTPA_TE_PORT BOARD_PORT_SPI_GPIOF
  41. #define RF_EXTPA_TE RF_EXTPA_TE_PORT, RF_EXTPA_TE_PIN //
  42. #else
  43. //
  44. #define RF_SX128x_RST_PIN BOARD_PIN_SPI_GPIOA //
  45. #define RF_SX128x_RST_PORT BOARD_PORT_SPI_GPIOA
  46. #define RF_SX128x_RST RF_SX128x_RST_PORT, RF_SX128x_RST_PIN //
  47. //
  48. #define RF_SX128x_BUSY_PIN BOARD_PIN_SPI_GPIOB //
  49. #define RF_SX128x_BUSY_PORT BOARD_PORT_SPI_GPIOB
  50. #define RF_SX128x_BUSY RF_SX128x_BUSY_PORT, RF_SX128x_BUSY_PIN //
  51. //IO1用于射频中断响应
  52. #define RF_SX128x_IO1_PIN BOARD_PIN_SPI_GPIOC //
  53. #define RF_SX128x_IO1_PORT BOARD_PORT_SPI_GPIOC
  54. #define RF_SX128x_IO1 RF_SX128x_IO1_PORT, RF_SX128x_IO1_PIN //
  55. //
  56. #define RF_SX128x_IO2_PIN BOARD_PIN_SPI_GPIOD //
  57. #define RF_SX128x_IO2_PORT BOARD_PORT_SPI_GPIOD
  58. #define RF_SX128x_IO2 RF_SX128x_IO2_PORT, RF_SX128x_IO2_PIN //
  59. //
  60. #define RF_SX128x_IO3_PIN BOARD_PIN_SPI_GPIOE //
  61. #define RF_SX128x_IO3_PORT BOARD_PORT_SPI_GPIOE
  62. #define RF_SX128x_IO3 RF_SX128x_IO3_PORT, RF_SX128x_IO3_PIN //
  63. //外部PA和LNA控制脚
  64. #define RF_EXTPA_RE_PIN BOARD_PIN_SPI_GPIOG //
  65. #define RF_EXTPA_RE_PORT BOARD_PORT_SPI_GPIOG
  66. #define RF_EXTPA_RE RF_EXTPA_RE_PORT, RF_EXTPA_RE_PIN //
  67. #define RF_EXTPA_TE_PIN BOARD_PIN_SPI_GPIOF //
  68. #define RF_EXTPA_TE_PORT BOARD_PORT_SPI_GPIOF
  69. #define RF_EXTPA_TE RF_EXTPA_TE_PORT, RF_EXTPA_TE_PIN //
  70. #endif
  71. //-------------射频模块引脚映射到转接板排针---------------END
  72. uint8_t READ_RF_SX128x_BUSY(void);
  73. uint8_t READ_RF_SX128x_IO1(void);
  74. void RF_SX128x_RST_H(void);
  75. void RF_SX128x_RST_L(void);
  76. void RF_SX128x_BUSY_H(void);
  77. void RF_SX128x_BUSY_L(void);
  78. void RF_SX128x_IO1_H(void);
  79. void RF_SX128x_IO1_L(void);
  80. void RF_SX128x_IO2_H(void);
  81. void RF_SX128x_IO2_L(void);
  82. void RF_SX128x_IO3_H(void);
  83. void RF_SX128x_IO3_L(void);
  84. void RF_EXT_PA_RE_H(void);
  85. void RF_EXT_PA_RE_L(void);
  86. void RF_EXT_PA_TE_H(void);
  87. void RF_EXT_PA_TE_L(void);
  88. #define RF_EXT_PA_TO_TX() RF_EXT_PA_TE_H();RF_EXT_PA_RE_L()
  89. #define RF_EXT_PA_TO_RX() RF_EXT_PA_TE_L();RF_EXT_PA_RE_H()
  90. #define RF_EXT_PA_TO_IDLE() RF_EXT_PA_TE_L();RF_EXT_PA_RE_L()
  91. void BOARD_SPI_NSS_H(void);
  92. void BOARD_SPI_NSS_L(void);
  93. //-------------将封装的API映射到射频模块硬件层---------------
  94. void myRadio_gpio_init(RADIO_GPIO_CALLBACK cb);
  95. void myRadio_gpio_intoLwPwr(bool sta);
  96. uint8_t myRadioSpi_rwByte(uint8_t byteToWrite);
  97. void myRadioSpi_wBuffer(uint8_t* pData, uint16_t len);
  98. void myRadioSpi_rBuffer(uint8_t* pData, uint16_t len);
  99. void myRadioSpi_rwBuffer(uint8_t* pDataR, uint8_t* pDataW, uint16_t len);
  100. #define SpiReadWrite(p) myRadioSpi_rwByte(p)
  101. #define SpiWriteData(p1, p2) myRadioSpi_wBuffer(p1, p2)
  102. #define SpiReadData(p1, p2) myRadioSpi_rBuffer(p1, p2)
  103. #define SpiWriteReadData(p1, p2, p3) myRadioSpi_rwBuffer(p2, p1, p3)
  104. #define RF_SPI_NSS_H() BOARD_SPI_NSS_H()
  105. #define RF_SPI_NSS_L() BOARD_SPI_NSS_L()
  106. //-------------将封装的API映射到射频模块硬件层---------------END
  107. #endif