boardinit.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. #ifndef _BOARD_H_
  2. #define _BOARD_H_
  3. #include "Uart.h"
  4. #include "Timer.h"
  5. #include "flash.h"
  6. #include "fifo.h"
  7. #include "timeout.h"
  8. #include "I2C.h"
  9. #include "epprom.h"
  10. #include "rtc.h"
  11. #include "key.h"
  12. #define TQ_PORT GPIOC // 抬枪信号端口
  13. #define TQ_PIN GPIO_PIN_8 // 抬枪信号管脚
  14. #define BM_PORT GPIOC // 编码器信号端口
  15. #define BM_PIN GPIO_PIN_9 // 编码器信号管脚
  16. #define LED_GREEN_SET() gpio_bit_set(GPIOD, GPIO_PIN_14) //
  17. #define LED_GREEN_RESET() gpio_bit_reset(GPIOD, GPIO_PIN_14)
  18. #define LED_RED_SET() gpio_bit_set(GPIOD, GPIO_PIN_15) //
  19. #define LED_RED_RESET() gpio_bit_reset(GPIOD, GPIO_PIN_15)
  20. #define PORT_MAX_NUM 64
  21. #define SEL_74CH165 0
  22. #define USE_PORT_ID 0
  23. enum {
  24. CEN = 0x01,
  25. CLK = 0x02,
  26. PLN = 0x03,
  27. };
  28. enum {
  29. PORT_00 = 0x01,
  30. PORT_01 = 0x02,
  31. PORT_02 = 0x04,
  32. PORT_03 = 0x08,
  33. PORT_ALL = 0x0F,
  34. };
  35. typedef struct port_msg_{
  36. uint32_t group;
  37. uint32_t cePin;
  38. uint32_t doutPin;
  39. uint32_t cpPin;
  40. uint32_t plPin;
  41. }PortMsg;
  42. extern PortMsg g_portMsg[4];
  43. typedef struct cs_port_msg_{
  44. uint32_t csPort;
  45. uint32_t csPin;
  46. }CSPortMsg;
  47. #define CS_GROUP_NUM 12 // CS片选组数 上面12组,下面12组,共24组
  48. extern CSPortMsg g_csPortMsg[24];
  49. enum _RESET_FLAG_{
  50. RESET_PINRST = 0x01, // NRST 引脚复位
  51. RESET_PORRSTF = 0x02, // 上电掉电复位
  52. RESET_SFTRSTF = 0x04, // 软件复位
  53. RESET_IWDGRSTF = 0x08, //独立看门狗复位
  54. RESET_WWDGRSTF = 0x10, // 窗口看门狗复位
  55. RESET_LPWRRSTF = 0x20, // 低功耗复位
  56. };
  57. typedef struct {
  58. uint32_t tick;
  59. uint8_t status;
  60. }ExitTest;
  61. typedef struct {
  62. ExitTest exittest[25];
  63. uint32_t count;
  64. uint8_t btestStart;
  65. uint32_t width[22]; //
  66. uint8_t wCount; //
  67. }TestInitConut;
  68. extern TestInitConut testcount;
  69. typedef struct gun_status{
  70. uint8_t bGunUp; // 抬枪
  71. uint8_t bGunDn; // 挂枪
  72. uint8_t bgun; //
  73. timeout_t guntime; // 时间
  74. timeout_t taigunTime; // 抬枪时间
  75. }__attribute__((packed))GunStatus01;
  76. extern GunStatus01 g_gunSta;
  77. typedef struct gpio_exti_{
  78. uint8_t groupNum; // 现在的组数
  79. uint32_t csGroup[4]; // 片选组GPIOD GPIOC GPIOB
  80. uint32_t csPin[4]; // 具体的管脚
  81. //exti_line_enum extiLine; // 中断标志脚 comm
  82. //uint32_t extiPort; // 中断端口
  83. //uint32_t extiPin; // 中断管脚 comm
  84. //uint8_t extiPinSource; //
  85. //uint8_t extiIRQn; // 中断源
  86. // uint8_t outputPort;
  87. uint8_t comPort[4];
  88. uint8_t comPin[4];
  89. }__attribute__((packed))extiMsg_t;
  90. extern extiMsg_t g_extimsg; // 中断信息
  91. typedef enum {
  92. IDENTITY_SLAVE = 0x01, // 从设备
  93. IDENTITY_MASTER = 0x02, // 主设备
  94. }Identity;
  95. extern Identity g_iDentity; // 身份信息 主或从
  96. typedef struct _dev_reset_msg_{
  97. uint8_t resetflag;
  98. uint32_t resetNum;
  99. }__attribute__((packed))DevResetMsg;
  100. extern DevResetMsg g_devResetMsg;
  101. typedef struct _dev_pt_msg_{
  102. uint16_t firstPowerUp; // 是否为第一次上电 0x5A5A 说明已经上过电
  103. uint8_t eepromVer; // eeprom 的版本
  104. uint8_t binit; // 是否初始化
  105. uint32_t devSn; // 设备SN
  106. uint16_t devType1; // 设备类型
  107. uint16_t devfactory; // 设备厂家信息
  108. uint16_t seqNo ; // 生产批次号
  109. uint32_t data; // 生产日期
  110. uint8_t pcbVersion; // 硬件(PCB)版本
  111. uint32_t sqare; //备用
  112. }__attribute__((packed))DevPtMsg;
  113. extern DevPtMsg g_devPtMsg;
  114. typedef struct _dev_app_version_{
  115. uint32_t bootVer;
  116. uint32_t ptVer;
  117. uint32_t app1Ver;
  118. uint32_t app2Ver;
  119. uint32_t app3Ver;
  120. }__attribute__((packed))DevAppVersion;
  121. extern DevAppVersion g_devAppVer;
  122. extern void set_port_pin(uint8_t cmd,uint8_t index);
  123. extern void set_port_all_pin(uint8_t cmd,uint8_t index);
  124. extern void reset_port_pin(uint8_t cmd,uint8_t index);
  125. extern void reset_port_all_pin(uint8_t cmd,uint8_t index);//0x01 02 04 08
  126. extern uint8_t read_daout_pin(uint8_t index);
  127. extern void set_all_cs_port_status(FlagStatus status);
  128. extern void exti_gpio_init(void);
  129. extern void init_fwdgt_timer(void);
  130. extern void fwdgt_feed(uint32_t tickt);
  131. extern void board_init(void);
  132. extern void uart_init(void);
  133. extern uint32_t power_up_system_resettype(void);
  134. extern void gun_single_init(void);
  135. #endif