Files
JBao_Sprayer_FW/apps/usr_periph/board_pin.h
T
wuchuyuan 0dd65e1552 1、喷淋器 P1/P2功能实现
2、红灯按连接态慢闪
2026-09-09 19:57:00 +08:00

110 lines
7.2 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.
/******************************************************************************
* @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 供 5VPA6 导通泵)。
* 本机为 5V 常电、无电池;灯脚与加热垫相同:PA8 绿 / PA7 红(低亮)。
******************************************************************************/
#ifndef __BOARD_PIN_H__
#define __BOARD_PIN_H__
#include "asm/gpio.h"
/*============================================================================*/
/* 功能开关:某路硬件异常时可单独关掉,不影响配网 */
/* 0 时对应模块 init/run 直接 returnGPIO 不配,日志打一次 xxx disabled */
/*============================================================================*/
#define BOARD_LED_ENABLE 1 /**< 1=红绿状态 LEDPA7 红 / 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 TXcfg: 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__ */