user_nfc.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. #ifndef __USER_NFC_H_
  2. #define __USER_NFC_H_
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include "define.h"
  9. #include "fm175xx.h"
  10. #define USER_NFC_INTERVAL 10
  11. #define USER_NFC_MAX_COUNT 5
  12. #define USER_NFC_GPIO_RCC_ENABLE RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE);
  13. #define NFC_01_CS_GPIO GPIOB
  14. #define NFC_01_CS_PIN GPIO_Pin_7
  15. #define NFC_01_CS_ON GPIO_WriteBit(NFC_01_CS_GPIO, NFC_01_CS_PIN, Bit_RESET);
  16. #define NFC_01_CS_OFF GPIO_WriteBit(NFC_01_CS_GPIO, NFC_01_CS_PIN, Bit_SET);
  17. #define NFC_01_RST_GPIO GPIOB
  18. #define NFC_01_RST_PIN GPIO_Pin_6
  19. #define NFC_01_RST_DISABLE GPIO_WriteBit(NFC_01_RST_GPIO, NFC_01_RST_PIN, Bit_SET);
  20. #define NFC_01_RST_ENABLE GPIO_WriteBit(NFC_01_RST_GPIO, NFC_01_RST_PIN, Bit_RESET);
  21. #define NFC_02_CS_GPIO GPIOB
  22. #define NFC_02_CS_PIN GPIO_Pin_9
  23. #define NFC_02_CS_ON GPIO_WriteBit(NFC_02_CS_GPIO, NFC_02_CS_PIN, Bit_RESET);
  24. #define NFC_02_CS_OFF GPIO_WriteBit(NFC_02_CS_GPIO, NFC_02_CS_PIN, Bit_SET);
  25. #define NFC_02_RST_GPIO GPIOB
  26. #define NFC_02_RST_PIN GPIO_Pin_8
  27. #define NFC_02_RST_DISABLE GPIO_WriteBit(NFC_02_RST_GPIO, NFC_02_RST_PIN, Bit_SET);
  28. #define NFC_02_RST_ENABLE GPIO_WriteBit(NFC_02_RST_GPIO, NFC_02_RST_PIN, Bit_RESET);
  29. #define NFC_03_CS_GPIO GPIOC
  30. #define NFC_03_CS_PIN GPIO_Pin_5
  31. #define NFC_03_CS_ON GPIO_WriteBit(NFC_03_CS_GPIO, NFC_03_CS_PIN, Bit_RESET);
  32. #define NFC_03_CS_OFF GPIO_WriteBit(NFC_03_CS_GPIO, NFC_03_CS_PIN, Bit_SET);
  33. #define NFC_03_RST_GPIO GPIOC
  34. #define NFC_03_RST_PIN GPIO_Pin_4
  35. #define NFC_03_RST_DISABLE GPIO_WriteBit(NFC_03_RST_GPIO, NFC_03_RST_PIN, Bit_SET);
  36. #define NFC_03_RST_ENABLE GPIO_WriteBit(NFC_03_RST_GPIO, NFC_03_RST_PIN, Bit_RESET);
  37. #define NFC_04_CS_GPIO GPIOB
  38. #define NFC_04_CS_PIN GPIO_Pin_1
  39. #define NFC_04_CS_ON GPIO_WriteBit(NFC_04_CS_GPIO, NFC_04_CS_PIN, Bit_RESET);
  40. #define NFC_04_CS_OFF GPIO_WriteBit(NFC_04_CS_GPIO, NFC_04_CS_PIN, Bit_SET);
  41. #define NFC_04_RST_GPIO GPIOB
  42. #define NFC_04_RST_PIN GPIO_Pin_0
  43. #define NFC_04_RST_DISABLE GPIO_WriteBit(NFC_04_RST_GPIO, NFC_04_RST_PIN, Bit_SET);
  44. #define NFC_04_RST_ENABLE GPIO_WriteBit(NFC_04_RST_GPIO, NFC_04_RST_PIN, Bit_RESET);
  45. #define NFC_05_CS_GPIO GPIOB
  46. #define NFC_05_CS_PIN GPIO_Pin_14
  47. #define NFC_05_CS_ON GPIO_WriteBit(NFC_05_CS_GPIO, NFC_05_CS_PIN, Bit_RESET);
  48. #define NFC_05_CS_OFF GPIO_WriteBit(NFC_05_CS_GPIO, NFC_05_CS_PIN, Bit_SET);
  49. #define NFC_05_RST_GPIO GPIOB
  50. #define NFC_05_RST_PIN GPIO_Pin_12
  51. #define NFC_05_RST_DISABLE GPIO_WriteBit(NFC_05_RST_GPIO, NFC_05_RST_PIN, Bit_SET);
  52. #define NFC_05_RST_ENABLE GPIO_WriteBit(NFC_05_RST_GPIO, NFC_05_RST_PIN, Bit_RESET);
  53. #define ID_LOSE_DELAY_COUNT 2
  54. typedef enum{
  55. NFC_TYPE_RST_START,
  56. NFC_TYPE_RST_END,
  57. NFC_TYPE_INIT,
  58. NFC_TYPE_CARD_CHECK,
  59. }nfc_work_type_e;
  60. typedef enum{
  61. NFC_CARD_NULL,
  62. NFC_CARD_IN,
  63. NFC_CARD_NO,
  64. }nfc_card_stat_e;
  65. // typedef struct{
  66. // nfc_work_type_e work_type;
  67. // uint32_t nfc_delay_count;
  68. // bool left_init_stat;
  69. // bool right_init_stat;
  70. // uint8_t left_loss_delay;
  71. // uint8_t right_loss_delay;
  72. // uint8_t left_ver;
  73. // uint32_t left_ID;
  74. // uint8_t right_ver;
  75. // uint32_t right_ID;
  76. // nfc_card_stat_e left_card_stat;
  77. // nfc_card_stat_e right_card_stat;
  78. // unsigned char left_idA[8];
  79. // unsigned char right_idA[8];
  80. // unsigned char left_idB[10];
  81. // unsigned char right_idB[10];
  82. // bool left_charge_stat;
  83. // bool right_charge_stat;
  84. // }nfc_work_s;
  85. typedef struct{
  86. bool init_stat;
  87. uint8_t version;
  88. uint8_t loss_delay;
  89. nfc_card_stat_e card_stat;
  90. bool elecStat;
  91. unsigned char idA[8];
  92. unsigned char idB[10];
  93. }nfc_param_s;
  94. typedef struct{
  95. nfc_work_type_e work_type;
  96. uint32_t nfc_delay_count;
  97. nfc_param_s nfc_param[USER_NFC_MAX_COUNT];
  98. }nfc_work_s;
  99. typedef enum
  100. {
  101. NFC_QUEUE_TIME = 0,
  102. }USER_NFC_QUEUE_TYPE;
  103. unsigned char ReadRawRC(unsigned char Address);
  104. void WriteRawRC(unsigned char Address, unsigned char value);
  105. void SetBitMask(unsigned char reg,unsigned char mask);
  106. void ClearBitMask(unsigned char reg,unsigned char mask);
  107. void NFC_HardReset(void);
  108. void NFC_HardPowerdown(uint8_t mode);
  109. typedef void (*vUser_nfc_upload_card_stat_func)(uint8_t idx, bool stat, unsigned char *card);
  110. void vUser_nfc_init(void);
  111. void vUser_nfc_task_start(void);
  112. void vUser_nfc_set_upload_key_stat_func(vUser_nfc_upload_card_stat_func func);
  113. void vUser_nfc_set_charge_stat(uint8_t idx, bool stat);
  114. #ifdef __cplusplus
  115. }
  116. #endif
  117. #endif /* __USER_NFC_H_ */