| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335 |
- /* USER CODE BEGIN Header */
- /**
- ******************************************************************************
- * @file : main.h
- * @brief : Header for main.c file.
- * This file contains the common defines of the application.
- ******************************************************************************
- * @attention
- *
- * <h2><center>© Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
- /* USER CODE END Header */
- /* Define to prevent recursive inclusion -------------------------------------*/
- #ifndef __MAIN_H
- #define __MAIN_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Includes ------------------------------------------------------------------*/
- #include "stm32g0xx_hal.h"
- #include <rtthread.h>
- #define DBG_kprintf 1 //打印一些调试信息
- #define ALL_Clear 0 //使能该标记位 上电给flash和loar恢复默认设置
- #define MAX_Slave_NUM 16 //最大从机挂载量
- #define MAX_e_code_NUM 60 //异常码最大保存值
- #define Node_Type LTE //决定当前模式
- /*
- #define Host One //主机模式
- //*/
- #define LTE Zero //单4G模式
- /*
- #define Monitor 150 //监听器模式 监听主从机之间的lora数据包
- //*/
- //#define USING_MON //若 #define Node_Type Monitor 需开启该define
- #if(Node_Type == LTE)
- #define LTE_CMD_BUFSIZE 2048 //4G模式使用大容量buf
- #define MAX_SENSOR_NUM 16 //决定处理要素模型条数
- #else
- #define LTE_CMD_BUFSIZE 1100 //主机模式使用小容量buf
- #define MAX_SENSOR_NUM 16 //决定处理要素模型条数
- #endif
- #define One 100 //对于需要存入flash的 bool型变量
- #define Zero 200 //存入uint8_t的100 和 200 来代替true和flase
- void Error_Handler(void);
- // flash的CS引脚
- #define FLASH_CS_Pin GPIO_PIN_4
- #define FLASH_CS_GPIO_Port GPIOA
- // flash供电硬件 接GND
- #define Flash_CTL_Pin GPIO_PIN_15
- #define Flash_CTL_Port GPIOA
- // 串口2的485控制引脚 外接传感器
- #define R_D_Pin GPIO_PIN_8
- #define R_D_GPIO_Port GPIOA
- // 串口3的485控制引脚 外接LED大屏
- #define RX_STU_Pin GPIO_PIN_13
- #define RX_STU_Port GPIOC
- /*
- #define OUT1_Pin GPIO_PIN_11
- #define OUT1_GPIO_Port GPIOA
- #define OUT2_Pin GPIO_PIN_12
- #define OUT2_GPIO_Port GPIOA
- #define TX_STU_Pin GPIO_PIN_1
- #define TX_STU_GPIO_Port GPIOB
- // PB2实际没有用 旧版使用他读取拨码开关状态
- #define Valve_EN_Pin GPIO_PIN_2
- #define Valve_EN_Port GPIOB
- #define LORA_WAKEUP_Pin GPIO_PIN_8
- #define LORA_WAKEUP_Port GPIOB
- #define LORA_AT_Pin GPIO_PIN_9
- #define LORA_AT_GPIO_Port GPIOB
- #define LOAR_RTSET_Pin GPIO_PIN_13
- #define LOAR_RTSET_Port GPIOB
- #define IN2_Pin GPIO_PIN_14
- #define IN2_GPIO_Port GPIOB
- #define IN1_Pin GPIO_PIN_15
- #define IN1_GPIO_Port GPIOB
- #define Valve_CTL_Pin GPIO_PIN_6
- #define Valve_CTL_Port GPIOC
- //*/
- // 12V升压电路控制使能引脚 高电平 开启12V输出
- #define CONTROL_12V_Pin GPIO_PIN_3
- #define CONTROL_12V_GPIO_Port GPIOB
- //控制4G模块供电引脚 低电平 开启
- #define MODULE_CTL_Pin GPIO_PIN_4
- #define MODULE_CTL_GPIO_Port GPIOB
- // 外部按键唤醒引脚 默认低电平 按下高电平
- #define EXT_KEY_Pin GPIO_PIN_5
- #define EXT_KEY_GPIO_Port GPIOB
- //控制进入升压模块的总供电 低电平 开启
- #define CONTROL_5V_Pin GPIO_PIN_6
- #define CONTROL_5V_GPIO_Port GPIOB
- //led指示灯,外部唤醒后输出高电平 灯亮
- #define RUN_STATUS_Pin GPIO_PIN_7
- #define RUN_STATUS_GPIO_Port GPIOB
- //电池电压adc检查,开启引脚 低电平开启
- #define adc_gnd_Pin GPIO_PIN_12
- #define adc_gnd_GPIO_Port GPIOB
- //MCU复位引脚
- #define MCU_RESET_Pin GPIO_PIN_7
- #define MCU_RESET_Port GPIOC
- /******************************************************
- *
- *
- * 此处为配置主机节点信息的参数
- *
- *
- ******************************************************/
- /*
- #define def_address 240 //默认的Lora地址
- #define def_FREQ 0 //Lora默认使用频段
- */
- /******************************************************
- *
- *
- * 此处为配置主机节点信息的参数
- *
- *
- ******************************************************/
- /*********** 分配的独立储存地址 ***********/
- /*为每一个参数预留4K的空间 参数间使用4K空间隔开
- * 在其中首地址写入一个标记位作为参数使能标记位 */
- #define bak_addr_SYS_INFO 0x200000
- #define bak_flg_SYS_INFO 0x211000
- #define bak_addr_Sensor 0x212000
- #define bak_flg_Sensor 0x213000
- #define bak_addr_Loar_Device 0x214000
- #define bak_flg_Loar_Device 0x215000
- /*********** 分配的独立储存地址 ***********/
- extern UART_HandleTypeDef huart1;
- extern UART_HandleTypeDef huart2;
- extern UART_HandleTypeDef huart3;
- uint8_t Get_lora_Freq(void);
- void Para_upgrade(uint8_t type);
- void Enadble_module(uint8_t en);
- void RESET_MCU(void);
- void Check_VBAT(void);
- void Trigger_report(uint8_t type);
- void Show_Version(void);
- void Check_Free(void);
- void Read_Para(void);
- void Excute_ADC(void);
- void Recode_e_code(uint8_t code , uint8_t para);
- void Reflash_BL_Sta_Check(void);
- void upgrade_bak_para(uint8_t type);
- uint8_t restore_bak_para(uint8_t type);
- typedef struct
- {
- char imei[16];
- char rssi[3];
- uint8_t run_mode; //运行模式,0:低功耗模式,1:正常模式 在flash中 存入的0 1分别是200 100
- uint16_t interval; //上报间隔时间,单位分钟,范围0-1000
- uint8_t slaves_Number; //主机配对的从机节点数量
- char iccid[21]; //SIM卡ID
- uint8_t V1_Sta; //阀控1状态
- uint8_t V2_Sta; //阀控2状态
- uint8_t Sensor_num; //传感器数量
- uint8_t platform; //记录上报数据的平台 默认200为四情 100为大数据
- char update_url[20]; //记录定制化升级url中的特殊部分
- }SYS_INFO;
- #if Node_Type == LTE
- typedef struct
- {
- char eKey[5]; //传感器通道号
- uint8_t sensor_addr; //从机地址
- uint16_t start_reg; //寄存器起始位置
- uint8_t count; //读取寄存器数量
- uint8_t d_pos; //数据偏移量
- int factor; //修正因子
- uint8_t d_length; //数据长度(单位uint16)
- int32_t value; //传感器数值
- char eName[15]; //传感器名称
- char eValue[10]; //传感器字符串形式数据
- char eNum[5]; //服务器端 传感器代号
- uint8_t cfged; //参数已配置
- uint8_t en_corr; //是否使能要素修正
- int16_t plus; // +
- int16_t minus; // -
- int16_t times; // *
- int16_t divide; // /
- }Sensor;
- #else
- typedef struct
- {
- char eKey[5]; //传感器通道号
- uint8_t sensor_addr; //从机地址
- uint16_t start_reg; //寄存器起始位置
- uint8_t count; //读取寄存器数量
- uint8_t d_pos; //数据偏移量
- int factor; //修正因子
- uint8_t d_length; //数据长度(单位uint16)
- int32_t value; //传感器数值
- char eName[15]; //传感器名称
- char eValue[10]; //传感器字符串形式数据
- char eNum[5]; //服务器端 传感器代号
- uint8_t cfged; //参数已配置
- }Sensor;
- #endif
- typedef struct
- {
- uint16_t Now_Version;
- uint8_t upgrade_flag;
- uint8_t boot_state;
- uint16_t iap_boot_state;
- }BL_Para;
- typedef struct
- {
- uint32_t timed_start;
- uint32_t boot_times;
- }Boot;
- extern SYS_INFO sys_info; /*其他系统信息结构体*/
- #pragma pack(1)
- typedef struct _DateTime /*此结构体定义了NTP时间同步的相关变量*/
- {
- uint16_t year[2]; /*年为2字节 分为高低两位 */
- uint8_t month; /* 月 */
- uint8_t day; /* 天 */
- uint8_t hour; /* 时 */
- uint8_t minute; /* 分 */
- uint8_t second; /* 秒 */
- } DateTime;
- typedef struct
- {
- int revise_time; //存放修正时间参数
- uint8_t cnt_recv_recode; //存放上次收到的从机数量
- }Revise_par;
- typedef struct
- {
- uint32_t Time_Stampe; //时间戳
- uint8_t code; //异常码
- uint8_t para; //附带参数
- }Record;
- typedef struct
- {
- uint8_t en; //是否进入了保护模式
- uint8_t na_cnt; //na计数/全na才行
- //uint8_t ; //
- }Trans_para;
- #pragma pack()
- extern DateTime nowdate;
- #endif /* __MAIN_H */
- /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|