api-hal-spi-config.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #pragma once
  2. #include <api-hal-gpio.h>
  3. #include <cmsis_os2.h>
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. extern const SPI_InitTypeDef api_hal_spi_config_nfc;
  8. extern const SPI_InitTypeDef api_hal_spi_config_subghz;
  9. extern const SPI_InitTypeDef api_hal_spi_config_display;
  10. extern const SPI_InitTypeDef api_hal_spi_config_sd_fast;
  11. extern const SPI_InitTypeDef api_hal_spi_config_sd_slow;
  12. /** API HAL SPI BUS handler
  13. * Structure content may change at some point
  14. */
  15. typedef struct {
  16. const SPI_HandleTypeDef* spi;
  17. const osMutexId_t* mutex;
  18. const GpioPin* miso;
  19. const GpioPin* mosi;
  20. const GpioPin* clk;
  21. } ApiHalSpiBus;
  22. /** API HAL SPI Device handler
  23. * Structure content may change at some point
  24. */
  25. typedef struct {
  26. const ApiHalSpiBus* bus;
  27. const SPI_InitTypeDef* config;
  28. const GpioPin* chip_select;
  29. } ApiHalSpiDevice;
  30. /** API HAL SPI Standard Device IDs */
  31. typedef enum {
  32. ApiHalSpiDeviceIdSubGhz, /** SubGhz: CC1101, non-standard SPI usage */
  33. ApiHalSpiDeviceIdDisplay, /** Display: ERC12864, only have MOSI */
  34. ApiHalSpiDeviceIdSdCardFast, /** SDCARD: fast mode, after initialization */
  35. ApiHalSpiDeviceIdSdCardSlow, /** SDCARD: slow mode, before initialization */
  36. ApiHalSpiDeviceIdNfc, /** NFC: ST25R3916, pretty standard, but RFAL makes it complex */
  37. ApiHalSpiDeviceIdMax, /** Service Value, do not use */
  38. } ApiHalSpiDeviceId;
  39. /** Api Hal Spi Bus R
  40. * CC1101, Nfc
  41. */
  42. extern const ApiHalSpiBus spi_r;
  43. /** Api Hal Spi Bus D
  44. * Display, SdCard
  45. */
  46. extern const ApiHalSpiBus spi_d;
  47. /** Api Hal Spi devices */
  48. extern const ApiHalSpiDevice api_hal_spi_devices[ApiHalSpiDeviceIdMax];
  49. typedef struct {
  50. const ApiHalSpiBus* bus;
  51. const SPI_InitTypeDef config;
  52. } SPIDevice;
  53. #ifdef __cplusplus
  54. }
  55. #endif