myRadio_gpio.h 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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 "board.h"
  9. #ifndef SPI_HARD
  10. #define SPI_HARD
  11. #endif
  12. typedef void (*RADIO_GPIO_CALLBACK)(uint8_t index);
  13. typedef enum{
  14. RF_MODE_IO_RX,
  15. RF_MODE_IO_TX,
  16. }rf_mode_io_te;
  17. //-------------射频模块引脚映射到转接板排针---------------
  18. //IO1用于射频中断响应
  19. #define RF_SI4438_IRQ_PIN BOARD_PIN_SPI_GPIOA //
  20. #define RF_SI4438_IRQ_PORT BOARD_PORT_SPI_GPIOA
  21. #define RF_SI4438_IRQ RF_SI4438_IRQ_PORT, RF_SI4438_IRQ_PIN //
  22. //
  23. #define RF_SPI_PDN_PIN BOARD_PIN_SPI_GPIOB //
  24. #define RF_SPI_PDN_PORT BOARD_PORT_SPI_GPIOB
  25. #define RF_SPI_PDN RF_SPI_PDN_PORT, RF_SPI_PDN_PIN //
  26. //用于射频收发中断响应
  27. #define RF_SI4438_IO0_PIN BOARD_PIN_SPI_GPIOC //
  28. #define RF_SI4438_IO0_PORT BOARD_PORT_SPI_GPIOC
  29. #define RF_SI4438_IO0 RF_SI4438_IO0_PORT, RF_SI4438_IO0_PIN //
  30. //用于射频接收data out输出映射
  31. #define RF_SI4438_IO1_PIN BOARD_PIN_SPI_GPIOD //
  32. #define RF_SI4438_IO1_PORT BOARD_PORT_SPI_GPIOD
  33. #define RF_SI4438_IO1 RF_SI4438_IO1_PORT, RF_SI4438_IO1_PIN //
  34. //
  35. #define RF_SI4438_IO2_PIN BOARD_PIN_SPI_GPIOG //
  36. #define RF_SI4438_IO2_PORT BOARD_PORT_SPI_GPIOG
  37. #define RF_SI4438_IO2 RF_SI4438_IO2_PORT, RF_SI4438_IO2_PIN //
  38. //
  39. #define RF_SI4438_IO3_PIN BOARD_PIN_SPI_GPIOH //
  40. #define RF_SI4438_IO3_PORT BOARD_PORT_SPI_GPIOH
  41. #define RF_SI4438_IO3 RF_SI4438_IO3_PORT, RF_SI4438_IO3_PIN //
  42. //
  43. #define RF_SI4438_RX_PIN BOARD_PIN_SPI_GPIOE //
  44. #define RF_SI4438_RX_PORT BOARD_PORT_SPI_GPIOE
  45. #define RF_SI4438_RX RF_SI4438_RX_PORT, RF_SI4438_RX_PIN //
  46. //
  47. #define RF_SI4438_TX_PIN BOARD_PIN_SPI_GPIOF //
  48. #define RF_SI4438_TX_PORT BOARD_PORT_SPI_GPIOF
  49. #define RF_SI4438_TX RF_SI4438_TX_PORT, RF_SI4438_TX_PIN //
  50. //-------------射频模块引脚映射到转接板排针---------------END
  51. uint8_t READ_RF_SI4438_IRQ(void);
  52. void RF_SI4438_IRQ_H(void);
  53. void RF_SI4438_IRQ_L(void);
  54. void RF_SPI_PDN_H(void);
  55. void RF_SPI_PDN_L(void);
  56. void RF_SI4438_IO0_H(void);
  57. void RF_SI4438_IO0_L(void);
  58. void RF_SI4438_IO1_H(void);
  59. void RF_SI4438_IO1_L(void);
  60. void RF_SI4438_IO2_H(void);
  61. void RF_SI4438_IO2_L(void);
  62. void RF_SI4438_IO3_H(void);
  63. void RF_SI4438_IO3_L(void);
  64. void RF_SI4438_RF_MODE(rf_mode_io_te mode);
  65. void BOARD_SPI_NSS_H(void);
  66. void BOARD_SPI_NSS_L(void);
  67. //-------------将封装的API映射到射频模块硬件层---------------
  68. void myRadio_gpio_init(RADIO_GPIO_CALLBACK cb);
  69. void myRadio_gpio_intoLwPwr(bool sta);
  70. uint8_t myRadioSpi_rwByte(uint8_t byteToWrite);
  71. void myRadioSpi_wBuffer(uint8_t* pData, uint8_t len);
  72. void myRadioSpi_rBuffer(uint8_t* pData, uint8_t len);
  73. void myRadioSpi_rwBuffer(uint8_t* pDataR, uint8_t* pDataW, uint8_t len);
  74. #define SpiReadWrite(p) myRadioSpi_rwByte(p)
  75. #define SpiWriteData(p1, p2) myRadioSpi_wBuffer(p1, p2)
  76. #define SpiReadData(p1, p2) myRadioSpi_rBuffer(p1, p2)
  77. #define SpiWriteReadData(p1, p2, p3) myRadioSpi_rwBuffer(p2, p1, p3)
  78. //-------------将封装的API映射到射频模块硬件层---------------END
  79. #endif