main.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. /* USER CODE BEGIN Header */
  2. /**
  3. ******************************************************************************
  4. * @file : main.h
  5. * @brief : Header for main.c file.
  6. * This file contains the common defines of the application.
  7. ******************************************************************************
  8. * @attention
  9. *
  10. * Copyright (c) 2024 STMicroelectronics.
  11. * All rights reserved.
  12. *
  13. * This software is licensed under terms that can be found in the LICENSE file
  14. * in the root directory of this software component.
  15. * If no LICENSE file comes with this software, it is provided AS-IS.
  16. *
  17. ******************************************************************************
  18. */
  19. /* USER CODE END Header */
  20. /* Define to prevent recursive inclusion -------------------------------------*/
  21. #ifndef __MAIN_H
  22. #define __MAIN_H
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26. /* Includes ------------------------------------------------------------------*/
  27. #include "stm32l4xx_hal.h"
  28. /* Private includes ----------------------------------------------------------*/
  29. /* USER CODE BEGIN Includes */
  30. #define RS485_TX_ENABLE() HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET) // PA1拉高,RS485进入发�?�模�?
  31. #define RS485_RX_ENABLE() HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET) // PA1拉低,RS485进入接收模式
  32. /* USER CODE END Includes */
  33. /* Exported types ------------------------------------------------------------*/
  34. /* USER CODE BEGIN ET */
  35. #include <string.h> //memset
  36. #include <stdio.h> //printf
  37. #include <stdbool.h> // bool
  38. #include <stdint.h>
  39. #include <stdlib.h>
  40. #include <math.h>
  41. #include "ML307A.h"
  42. #include "DWIN.h"
  43. #include "FLASH.h"
  44. #include <time.h>
  45. #include "RTCtime.h"
  46. #include "circle_buffer.h"
  47. #include "WIFI.h"
  48. #include "w25qxx.h"
  49. /* USER CODE END ET */
  50. /* Exported constants --------------------------------------------------------*/
  51. /* USER CODE BEGIN EC */
  52. /* USER CODE END EC */
  53. /* Exported macro ------------------------------------------------------------*/
  54. /* USER CODE BEGIN EM */
  55. /**
  56. * @breaf 串口接收缓冲区大小
  57. */
  58. #define BUFFER_SIZE 30
  59. #define BUFFER_SIZE2 256
  60. #define BUFFER_SIZE4G 512
  61. /**
  62. * @breaf 内部flash参数定义
  63. * STM32L431RCT6 的Flash容量256KB,RAM容量64KB。
  64. * STM32L431RCT6 的内部 Flash 起始地址是 0x08000000,每页 2KB(0x800)2048个字节,共有0到127页
  65. * 计算第N页的起始地址 起始地址 = Flash起始地址 + 页号 × 每页大小
  66. */
  67. #define FLASH_PAGE_ADDR(page) (0x08000000 + (page) * 0x800) // 每页2KB=0x800
  68. #define FLASH_LAST_PAGE_ADDR 0x0801FC00 // STM32L431RCT6 内部Flash第127页起始地址 存阈值参数
  69. #define FLASH_SECOND_LAST_PAGE_ADDR 0x0801F400 // STM32L431RCT6 内部Flash第126页起始地址 存终端ID和手机号
  70. #define FLASH_THIRD_LAST_PAGE_ADDR 0x0801EC00 // STM32L431RCT6 内部Flash第125页起始地址 记录外部flash的写入地址
  71. #define FLASH_FOURTH_LAST_PAGE_ADDR 0x0801E400 // STM32L431RCT6 内部Flash第124页起始地址 记录版本号
  72. #define FLASH_FIFTH_LAST_PAGE_ADDR 0x0801DC00 // STM32L431RCT6 内部Flash第123页起始地址 存储WIFI名称密码
  73. #define FLASH_SIXTH_LAST_PAGE_ADDR 0x0801D400 // STM32L431RCT6 内部Flash第122页起始地址 存储4G或WIFI模式标志位
  74. /* USER CODE END EM */
  75. /* Exported functions prototypes ---------------------------------------------*/
  76. void Error_Handler(void);
  77. /* USER CODE BEGIN EFP */
  78. /* USER CODE END EFP */
  79. /* Private defines -----------------------------------------------------------*/
  80. #define DWIN_12V_Pin GPIO_PIN_0
  81. #define DWIN_12V_GPIO_Port GPIOC
  82. #define V5V_DC_EN_Pin GPIO_PIN_1
  83. #define V5V_DC_EN_GPIO_Port GPIOC
  84. #define V12V_EN_Pin GPIO_PIN_2
  85. #define V12V_EN_GPIO_Port GPIOC
  86. #define V3_8V_4G_enable_Pin GPIO_PIN_4
  87. #define V3_8V_4G_enable_GPIO_Port GPIOC
  88. #define RESET_4G_Pin GPIO_PIN_2
  89. #define RESET_4G_GPIO_Port GPIOB
  90. #define SPI2_CS_Pin GPIO_PIN_12
  91. #define SPI2_CS_GPIO_Port GPIOB
  92. #define CAN_RS_Pin GPIO_PIN_15
  93. #define CAN_RS_GPIO_Port GPIOA
  94. #define CAN_SHDT_Pin GPIO_PIN_10
  95. #define CAN_SHDT_GPIO_Port GPIOC
  96. #define V5V_CAN_EN_Pin GPIO_PIN_2
  97. #define V5V_CAN_EN_GPIO_Port GPIOD
  98. #define mcuLED_Pin GPIO_PIN_5
  99. #define mcuLED_GPIO_Port GPIOB
  100. #define alarm_LED_Pin GPIO_PIN_6
  101. #define alarm_LED_GPIO_Port GPIOB
  102. /* USER CODE BEGIN Private defines */
  103. /* USER CODE END Private defines */
  104. #ifdef __cplusplus
  105. }
  106. #endif
  107. #endif /* __MAIN_H */