110 lines
7.2 KiB
C
110 lines
7.2 KiB
C
/******************************************************************************
|
||
* @file board_pin.h
|
||
* @brief CBR2 板级引脚、电平与时序(换板只改本文件)
|
||
* @author cyWu <1917507415@qq.com>
|
||
* @date 2026.09.09
|
||
* @version V1.0.0
|
||
*
|
||
* @note 调试 UART0_TX=PC5 在 board_jl701n_demo_cfg.h。
|
||
* 泵脚成对操作,禁止只开 PC2 或 PA6(PC2 供 5V,PA6 导通泵)。
|
||
* 本机为 5V 常电、无电池;灯脚与加热垫相同:PA8 绿 / PA7 红(低亮)。
|
||
******************************************************************************/
|
||
|
||
#ifndef __BOARD_PIN_H__
|
||
#define __BOARD_PIN_H__
|
||
|
||
#include "asm/gpio.h"
|
||
|
||
/*============================================================================*/
|
||
/* 功能开关:某路硬件异常时可单独关掉,不影响配网 */
|
||
/* 0 时对应模块 init/run 直接 return,GPIO 不配,日志打一次 xxx disabled */
|
||
/*============================================================================*/
|
||
|
||
#define BOARD_LED_ENABLE 1 /**< 1=红绿状态 LED(PA7 红 / PA8 绿,低亮) */
|
||
#define BOARD_KEY_ENABLE 1 /**< 1=双键(PB1 喷淋 / PA0 配网,低按下) */
|
||
#define BOARD_PUMP_ENABLE 1 /**< 1=水泵双脚(PC2 供 5V / PA6 导通,高有效) */
|
||
#define BOARD_SPRAY_ENABLE 1 /* 喷淋作业引擎;=0 时键/DP 不转泵 */
|
||
#define BOARD_LINKAGE_ENABLE 1 /* 湿度联动(第 11 章);P2 开 */
|
||
#define BOARD_TIMER_ENABLE 1 /* 到点喷淋计划(第 12 章);P2 开 */
|
||
#define BOARD_TH_SCAN_ENABLE 1 /* 断连扫描风扇广播(第 8 章);P2 开 */
|
||
#define BOARD_RUNREC_ENABLE 1 /* 31 天运行记录(第 14 章);P2 开 */
|
||
#define BOARD_NVM_ENABLE 1 /* VM 持久化(第 14 章);P1/P2 开 */
|
||
|
||
/*============================================================================*/
|
||
/* GPIO */
|
||
/*============================================================================*/
|
||
|
||
#define BOARD_UART_TX_PIN IO_PORTC_05 /**< 调试 UART TX(cfg: TCFG_UART0_TX_PORT) */
|
||
#define BOARD_KEY_SPRAY_PIN IO_PORTB_01 /**< 喷淋键,低电平按下,只短按 */
|
||
#define BOARD_KEY_PAIR_PIN IO_PORTA_00 /**< 配网键,低电平按下,5s / 12s */
|
||
#define BOARD_LED_RED_PIN IO_PORTA_07 /**< 红灯,低电平亮(与加热垫相同) */
|
||
#define BOARD_LED_GREEN_PIN IO_PORTA_08 /**< 绿灯,低电平亮(与加热垫相同) */
|
||
#define BOARD_PUMP_PWR_PIN IO_PORTC_02 /**< 泵总供电:高把 5V 导到泵 VCC */
|
||
#define BOARD_PUMP_SW_PIN IO_PORTA_06 /**< 泵开关:高导通泵;须与 PC2 同开同关 */
|
||
|
||
#define BOARD_LED_ON_LEVEL 0 /**< LED 点亮电平:0=低亮 */
|
||
#define BOARD_PUMP_ON_LEVEL 1 /**< 泵有效电平:1=高导通 */
|
||
#define BOARD_KEY_ACTIVE_LEVEL 0 /**< 按键有效电平:0=按下为低 */
|
||
|
||
/*============================================================================*/
|
||
/* 按键 / 配对 / OTA */
|
||
/*============================================================================*/
|
||
|
||
/**
|
||
* 直接作为 key.c 状态机的 keyLongTime/keyLastTime 使用:
|
||
* PB1 喷淋键:<5s 松手 → SHORT_Event(启/停喷淋);满 5s 后松手 → RELEASE_Event
|
||
* (无动作,规格书 5.2:按住 ≥5s 无动作);12s 到点 LAST_Event 无动作
|
||
* PA0 配网键:满 5s → LONG_Event(红灯 100ms 快闪提示);5~12s 间松手 →
|
||
* RELEASE_Event(提交配对);满 12s → LAST_Event(进 OTA)
|
||
*/
|
||
#define BOARD_KEY_SPRAY_SHORT_MS 5000 /**< PB1:短按窗口上限(≥5s 无动作) */
|
||
#define BOARD_KEY_PAIR_MS 5000 /**< PA0 keyLongTime:满 5s 挂配对提示灯 */
|
||
#define BOARD_KEY_OTA_MS 12000 /**< PA0 keyLastTime:满 12s 到点直接进 OTA */
|
||
#define BOARD_KEY_DEBOUNCE_MS 20 /**< 按键消抖(参考值;key.c 内部以 30 为准) */
|
||
#define BOARD_PAIR_TIMEOUT_MS (120u * 1000u) /**< 配对超时 120s,失败后保持开机 */
|
||
|
||
/*============================================================================*/
|
||
/* LED(红绿独立通道,低亮;事件表见 led_manager.c) */
|
||
/*============================================================================*/
|
||
|
||
#define BOARD_LED_SPRAY_ON_MS 500 /**< 作业绿灯闪:亮 */
|
||
#define BOARD_LED_SPRAY_OFF_MS 500 /**< 作业绿灯闪:灭 */
|
||
#define BOARD_LED_FAST_ON_MS 100 /**< 配网红灯快闪:亮 */
|
||
#define BOARD_LED_FAST_OFF_MS 100 /**< 配网红灯快闪:灭 */
|
||
#define BOARD_LED_RECONN_ON_MS 500 /**< 已配对未连接/重连:红灯慢闪亮 */
|
||
#define BOARD_LED_RECONN_OFF_MS 500 /**< 已配对未连接/重连:红灯慢闪灭 */
|
||
#define BOARD_LED_OTA_ON_MS 200 /**< OTA 红绿交替半周期:亮 */
|
||
#define BOARD_LED_OTA_OFF_MS 200 /**< OTA 红绿交替半周期:灭 */
|
||
#define BOARD_LED_PAIR_FAIL_MS 200 /**< 配对失败红绿交替半周期 */
|
||
#define BOARD_LED_PAIR_FAIL_HOLD_MS 3000 /**< 配对失败动画总时长 */
|
||
|
||
/*============================================================================*/
|
||
/* BLE 广播:常电默认保持快广播;电池产品可开超时切慢广播 */
|
||
/*============================================================================*/
|
||
|
||
#define BOARD_BLE_SLOW_ADV_ENABLE 0 /**< 0=一直快广播(80);1=断连满 BOARD_BLE_SLOW_ADV_SEC 后切慢(800) */
|
||
#define BOARD_BLE_SLOW_ADV_SEC 60 /**< 使能后:已配对断连快广播持续秒数再切慢(本机 500ms 一拍) */
|
||
|
||
/*============================================================================*/
|
||
/* 断连扫描(P2,第 8.2 节) */
|
||
/*============================================================================*/
|
||
|
||
#define BOARD_ADV_SCAN_SLOT_MS 500 /* 重连广播 / 扫描各占一拍 */
|
||
|
||
/*============================================================================*/
|
||
/* 喷淋作业(第 10 章:首次上电 DP7 默认 10s × 3 次 + 间隔 3s) */
|
||
/*============================================================================*/
|
||
|
||
#define BOARD_SPRAY_DEFAULT_DUR_S 10 /**< DP7 默认单次喷淋时长(秒) */
|
||
#define BOARD_SPRAY_DEFAULT_COUNT 3 /**< DP7 默认喷淋次数 */
|
||
#define BOARD_SPRAY_DEFAULT_INTERVAL_S 3 /**< DP7 默认喷淋间隔(秒) */
|
||
|
||
/*============================================================================*/
|
||
/* 运行记录(P2,第 14.1 节:31 天 × uint32 秒) */
|
||
/*============================================================================*/
|
||
|
||
#define BOARD_RUN_RECORD_DAYS 31 /**< 记录天数 */
|
||
#define BOARD_RUN_RECORD_SAVE_SEC 600 /**< 泵实际导通累计 10 分钟写一次 VM */
|
||
|
||
#endif /* __BOARD_PIN_H__ */
|