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

116 lines
3.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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 接收缓冲OTA 分块 3KB + 头部/尾部突发约 3.1KB,留足余量 */
extern uint16_t Rx_Len;
extern uint8_t Rx_Buf[Rx_Max];
extern UART_HandleTypeDef huart3;
/* EEPROM配置魔数: 自动检测EEPROM是否已初始化 */
#define EEPROM_MAGIC 0xDEADBEEF// 0xDE123456//0xDEADBEEF
/*===== 产品型号配置 =====
* 同一套板子适配两种产品,编译前在这里二选一:
* 1 = 智能水产投料机:接 RS485 磅秤feeding 指令按 onceWt 定量自动投喂,
* 带重量反增/超时保护sw1 指令被忽略(投喂只能走 feeding
* 0 = 基础四路继电器不接磅秤feeding/sw1 指令直接开关投喂继电器 1
* 由平台侧自行计时控制
*/
/*===== 固件版本号(开机横幅打印用,改版本只动这里) =====*/
#define FIRMWARE_VERSION_STR "1.5.0"
#define PRODUCT_WITH_FEED_SCALE 0
/*===== GPS 定位配置 =====
* 同一套固件适配是否带 GNSS 的模组,编译前在这里二选一:
* 1 = 启用北斗/GPS 定位周期上报(仅 4G 通道,需 Air780EG 模组)
* 0 = 不获取不上传(纯 Air780E 无 GNSS 时用,不产生任何 GPS 相关 AT 交互)
*/
#define PRODUCT_WITH_GPS 1
/*===== MQTT 默认配置 =====*/
////锦鲤塘增氧投料机-02
//#define MQTT_CLIENT_ID "3eb3d1e51846f296"
//#define MQTT_USERNAME "766990788193702677"
//#define MQTT_PASSWORD "a0207984565267a5"
#define MQTT_CLIENT_ID "4fbaf68ca378b72b"
#define MQTT_USERNAME "698227263545354343"
#define MQTT_PASSWORD "b612c2839c135934"
#define MQTT_SERVER_IP "58.17.14.95"
#define MQTT_SERVER_PORT 1880
#define MQTT_TOPIC "/iot/data/down/"
/*===== 蓝牙名称配置 =====
* 上电时通过 AT 命令设置 HLK-B40 的蓝牙名称(掉电保存),
* 多台设备现场用名字区分;手机列表大约只显示前 10 位 */
#define BLE_NAME "Bt1"
/*===== HLW8032 电量计量系数UART5 PD2 接收,只上报累计电量) =====
* 电压通道: ZMPT107-1(2mA:2mA),初级 220V 串 100K次级并 49.9R
* -> 电压系数 = (100K/49.9)/1000 = 2.004
* 电流通道: CT 100A/100mA(1000:1),输出并 2R -> 等效采样电阻 0.002R
* -> 电流系数 = 1/(0.002*1000) = 0.5
* 改电阻/互感器只需改这两个宏(公式见 HLW8032 手册电量计算一节) */
#define HLW_U_COEF 2.004f
#define HLW_I_COEF 0.5f
/*===== 蓝牙 GATT UUID 配置(透传服务)=====
* BLE_UUID_CUSTOM = 1上电把三个 UUID 设为下面的值(重启模块生效)。
* = 0保持模块出厂 UUID(fff0/fff1/fff2),仅海凌科自家 APP 可用
* 当前配置FFE0/FFE1HM-10/JDY-31 同款,收发共用 FFE1 单特征),
* 常见 BLE 串口 APP 都能连。Nordic NUS 备选6e400001/6e400003/6e400002 */
#define BLE_UUID_CUSTOM 1
#define BLE_UUID_SERVICE "0000ffe000001000800000805f9b34fb" /* FFE0 服务 */
#define BLE_UUID_TX "0000ffe100001000800000805f9b34fb" /* FFE1 模块->手机 */
#define BLE_UUID_RX "0000ffe100001000800000805f9b34fb" /* FFE1 手机->模块(同特征双向) */
/* MQTT配置结构体 (存储在AT24C02 EEPROM中) */
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]继电器状态, [0]保留 */
uint32_t Magic; /* 魔数, 检测EEPROM是否已初始化 */
uint16_t Ver; /* OTA固件版本号, 断电保持 */
} MqttInfo_Str;
#define MQTT_STRUCT_LEN sizeof(MqttInfo_Str)
/*===== W25Q64 外部 Flash 引脚(软件 SPI =====*/
#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 输入 */
#define W25Q64_DO_PORT GPIOB
#define W25Q64_DI_PIN GPIO_PIN_15 /* MCU DI -> Flash 输入 */
#define W25Q64_DI_PORT GPIOA
extern MqttInfo_Str MqttInfoStr;
/* USER CODE END Private defines */
#ifdef __cplusplus
}
#endif
#endif /* __MAIN_H */