shuichan_old/V1.5/STM32F103_App1/Inc/main.h

134 lines
4.7 KiB
C
Raw Normal View History

#ifndef __MAIN_H
#define __MAIN_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f1xx_hal.h"
/* USER CODE BEGIN Includes */
#include "air780e.h"
#include "log.h"
/* USER CODE END Includes */
void Error_Handler(void);
/* USER CODE BEGIN Private defines */
#define Rx_Max 8192 /* USART3 DMA <20><><EFBFBD>ջ<EFBFBD><D5BB>壺OTA <20>ֿ<EFBFBD> 3KB + ͷ<><CDB7><><CEB2>ͻ<EFBFBD><CDBB>Լ 3.1KB<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
extern uint16_t Rx_Len;
extern uint8_t Rx_Buf[Rx_Max];
extern UART_HandleTypeDef huart3;
/* EEPROM<4F><4D><EFBFBD><EFBFBD>ħ<EFBFBD><C4A7>: <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>EEPROM<4F>Ƿ<EFBFBD><C7B7>ѳ<EFBFBD>ʼ<EFBFBD><CABC> */
#define EEPROM_MAGIC 0xDEADBEEF// 0xDE123456//0xDEADBEEF
/*===== <20><>Ʒ<EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD><EFBFBD><EFBFBD> =====
* ͬһ<EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡһ<EFBFBD><EFBFBD>
* 1 = <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD>Ͷ<EFBFBD>ϻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RS485 <EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>feeding ָ<EFBFBD> onceWt <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>Ͷι<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>sw1 ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>Ͷιֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> feeding<EFBFBD><EFBFBD>
* 0 = <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD>ӣ<EFBFBD>feeding/sw1 ָ<EFBFBD><EFBFBD>ֱ<EFBFBD>ӿ<EFBFBD><EFBFBD><EFBFBD>Ͷι<EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD> 1<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD>ƽ̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
/*===== <20>̼<EFBFBD><CCBC><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD>ã<EFBFBD><C3A3>İ汾ֻ<E6B1BE><D6BB><EFBFBD><EFBFBD><EFBFBD> =====*/
#define FIRMWARE_VERSION_STR "1.5.6"
#define PRODUCT_WITH_FEED_SCALE 1 /* Ĭ<>ϴ<EFBFBD><CFB4>ӣ<EFBFBD>EEPROM 172 <20>ɸģ<C9B8><C4A3><EFBFBD><EFBFBD><EFBFBD> SCALE0/1 <20>л<EFBFBD><D0BB><EFBFBD> */
/*===== GPS <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> =====
* ͬһ<EFBFBD>׹̼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD> GNSS <EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡһ<EFBFBD><EFBFBD>
* 1 = <EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD>/GPS <EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4G ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Air780EG ģ<EFBFBD>
* 0 = <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Air780E <EFBFBD><EFBFBD> GNSS ʱ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD> GPS <EFBFBD><EFBFBD><EFBFBD><EFBFBD> AT <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define PRODUCT_WITH_GPS 1
/*===== MQTT Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =====*/
////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ϻ<EFBFBD>-02
//#define MQTT_CLIENT_ID "3eb3d1e51846f296"
//#define MQTT_USERNAME "766990788193702677"
//#define MQTT_PASSWORD "a0207984565267a5"
////<2F><><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8>ID - 01
//#define MQTT_CLIENT_ID "4fbaf68ca378b72b"
//#define MQTT_USERNAME "698227263545354343"
//#define MQTT_PASSWORD "b612c2839c135934"
//RTOS<4F><53><>ϻ<EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-01
#define MQTT_CLIENT_ID "46c080c385c3652e"
#define MQTT_USERNAME "766990788193702677"
#define MQTT_PASSWORD "6ae9622b7034326b"
//RTOS<4F><53><>ϻ<EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-03
//#define MQTT_CLIENT_ID "5791a8579d459290"
//#define MQTT_USERNAME "766990788193702677"
//#define MQTT_PASSWORD "5f6cd7748ec9db35"
#define MQTT_SERVER_IP "58.17.14.95"
#define MQTT_SERVER_PORT 1880
#define MQTT_TOPIC "/iot/data/down/"
/*===== <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =====
* <EFBFBD>ϵ<EFBFBD>ʱͨ<EFBFBD><EFBFBD> AT <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HLK-B40 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD>ֳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD>Լֻ<EFBFBD><EFBFBD>ʾǰ 10 λ */
#define BLE_NAME "Bt1"
/*===== HLW8032 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>UART5 PD2 <20><><EFBFBD>գ<EFBFBD>ֻ<EFBFBD>ϱ<EFBFBD><CFB1>ۼƵ<DBBC><C6B5><EFBFBD><EFBFBD><EFBFBD> =====
* <EFBFBD><EFBFBD>ѹͨ<EFBFBD><EFBFBD>: ZMPT107-1(2mA:2mA)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 220V <EFBFBD><EFBFBD> 100K<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD> 49.9R
* -> <EFBFBD><EFBFBD>ѹϵ<EFBFBD><EFBFBD> = (100K/49.9)/1000 = 2.004
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>: CT 100A/100mA(1000:1)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2R -> <EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0.002R
* -> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD> = 1/(0.002*1000) = 0.5
* <EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD> HLW8032 <EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ڣ<EFBFBD> */
#define HLW_U_COEF 2.004f
#define HLW_I_COEF 0.5f
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>(A)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ư<EFBFBD><C6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾʱ<CABE><CAB1>ȥ<EFBFBD><C8A5>ǯλ<C7AF><CEBB> 0<><30>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD> CT <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD> */
#define HLW_I_ZERO_A 0.02f
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ư<EFBFBD><C6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ 0.4~2W <20>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>ѹ<EFBFBD><D1B9>ס<EFBFBD><D7A1><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ 0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ټ<EFBFBD>ȥƫ<EFBFBD><EFBFBD> */
#define HLW_P_DEAD_W 2.0f /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(W)<29><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ֵ<EFBFBD><D6B5>ʾ 0 */
#define HLW_P_ZERO_W 0.5f /* <20><><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>(W)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ */
/*===== <20><><EFBFBD><EFBFBD> GATT UUID <20><><EFBFBD>ã<EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=====
* BLE_UUID_CUSTOM = 1<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UUID <EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* = 0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UUID(fff0/fff1/fff2)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD> APP <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>FFE0/FFE1<EFBFBD><EFBFBD>HM-10/JDY-31 ͬ<EFBFBD><EFBFBD>շ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FFE1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD> BLE <EFBFBD><EFBFBD><EFBFBD><EFBFBD> APP <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Nordic NUS <EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>6e400001/6e400003/6e400002 */
#define BLE_UUID_CUSTOM 1
#define BLE_UUID_SERVICE "0000ffe000001000800000805f9b34fb" /* FFE0 <20><><EFBFBD><EFBFBD> */
#define BLE_UUID_TX "0000ffe100001000800000805f9b34fb" /* FFE1 ģ<><C4A3>-><3E>ֻ<EFBFBD> */
#define BLE_UUID_RX "0000ffe100001000800000805f9b34fb" /* FFE1 <20>ֻ<EFBFBD>->ģ<>飨ͬ<E9A3A8><CDAC><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD> */
/* MQTT<54><54><EFBFBD>ýṹ<C3BD><E1B9B9> (<28><EFBFBD><E6B4A2>AT24C02 EEPROM<4F><4D>) */
typedef struct {
char ClientID[20];
char Username[20];
char Passward[20];
char ServerIP[20];
char Topic[20];
uint16_t ServerPort;
uint8_t Relay_State[7]; /* [1..4]<5D>̵<EFBFBD><CCB5><EFBFBD>״̬, [0]<5D><><EFBFBD><EFBFBD> */
uint32_t Magic; /* ħ<><C4A7>, <20><><EFBFBD><EFBFBD>EEPROM<4F>Ƿ<EFBFBD><C7B7>ѳ<EFBFBD>ʼ<EFBFBD><CABC> */
uint16_t Ver; /* OTA<54>̼<EFBFBD><CCBC><EFBFBD><E6B1BE>, <20>ϵ籣<CFB5><E7B1A3> */
} MqttInfo_Str;
#define MQTT_STRUCT_LEN sizeof(MqttInfo_Str)
/*===== W25Q64 <20>ⲿ Flash <20><><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD> SPI<50><49> =====*/
#define W25Q64_CS_PIN GPIO_PIN_4
#define W25Q64_CS_PORT GPIOB
#define W25Q64_CLK_PIN GPIO_PIN_3
#define W25Q64_CLK_PORT GPIOB
#define W25Q64_DO_PIN GPIO_PIN_5 /* Flash DO -> MCU <20><><EFBFBD><EFBFBD> */
#define W25Q64_DO_PORT GPIOB
#define W25Q64_DI_PIN GPIO_PIN_15 /* MCU DI -> Flash <20><><EFBFBD><EFBFBD> */
#define W25Q64_DI_PORT GPIOA
extern MqttInfo_Str MqttInfoStr;
/* USER CODE END Private defines */
#ifdef __cplusplus
}
#endif
#endif /* __MAIN_H */