2 Commits

Author SHA1 Message Date
xushaoxiang 440c4b622c 新增兼容两种墙壁开关 2026-07-22 11:37:38 +08:00
xushaoxiang 360697296c 修复椭圆遥控控制异常 2026-07-21 16:31:07 +08:00
173 changed files with 7361 additions and 6354 deletions
@@ -247,8 +247,8 @@ do { \
(__HANDLE__)->Lock = HAL_UNLOCKED; \
} while (0U)
#if ((__ARMCC_VERSION % 1000) != 750)
#error "Compiler build number mismatch. Required: build 750."
#if ((__ARMCC_VERSION % 1000) != 960)
#error "Compiler build number mismatch. Required: build 960."
#endif
/* Macro to get variable aligned on 4-bytes, for __ICCARM__ the directive
@@ -42,7 +42,7 @@ uint8_t adress_ch2_index = 0; // 通道2地址索引(0-4)
uint8_t match_ch = 0; // 匹配到的通道(1=GPIO52=GPIO2
#define MATCH_CH1 0 // HPW421 不使用通道1
#define MATCH_CH1 (1 << 0) //GPIO5
#define MATCH_CH2 (1 << 1) // 通道2匹配标记
@@ -92,8 +92,6 @@ void chx_gpio_init(void)
GPIO_InitCfg.FunSel = GPIO_Dx; // 选择GPIO功能(非特殊功能)
GPIO_InitCfg.Pull = GPIO_NOPULL; //下拉电阻使能
GPIO_InitCfg.Dir = GPIO_DIR_OUTPUT; // 输出方向
GPIO_InitCfg.Int = NOT_INT; // 不使能中断
GPIO_InitCfg.Dir = GPIO_DIR_OUTPUT; // 输出方向
GPIO_InitCfg.Int = NOT_INT; // 不使能中断
GPIO_InitCfg.Pin = RELAY_CH2_PIN; // 设置通道2引脚
@@ -143,17 +141,10 @@ void app_key_callback_handler(uint16_t key_value) //按键回调函数
case MODE_DOUBLE_CLICK: //双击
key_state=KEY_SHORT;
power=3;
power=4;
led_state=2;
break;
case MODE_QUAD_CLICK: //四击
key_state=KEY_SHORT;
power=3;
led_state=2;
break;
default:
break;
}
@@ -167,17 +158,11 @@ void ble_mode_scan(void)
{
switch(receive_mode)
{
case 1:
receive_mode=0;
key_state=KEY_SHORT;
power=3;
led_state=2;
break;
case 2:
receive_mode=0;
key_state=KEY_SHORT;
power=3;
power=4;
led_state=2;
break;
@@ -202,7 +187,7 @@ void _433_fun(void)
switch(res_data)
{
case 0x03: //如果是3键遥控或者是正方形白色遥控
if(match_ch & MATCH_CH2){
if(match_ch & MATCH_CH1){
xc_gpio_toggle_pin(RELAY_CH2_PIN);
flash_ch2_state=xc_gpio_read_pin(RELAY_CH2_PIN);
ble_state_mark_dirty(BLE_STATE_DIRTY_OUTPUT | BLE_STATE_DIRTY_RF433);
@@ -212,7 +197,7 @@ void _433_fun(void)
case 0x04: //如果是黑色长方形遥控或者椭圆遥控关闭按键
if(match_ch & MATCH_CH2)
if(match_ch & MATCH_CH1)
{
xc_gpio_write_pin(RELAY_CH2_PIN,GPIO_PIN_RESET);
flash_ch2_state=xc_gpio_read_pin(RELAY_CH2_PIN);
@@ -221,7 +206,7 @@ void _433_fun(void)
break;
case 0x02: //如果是黑色长方形遥控或者椭圆遥控打开按键
if(match_ch & MATCH_CH2)
if(match_ch & MATCH_CH1)
{
xc_gpio_write_pin(RELAY_CH2_PIN,GPIO_PIN_SET);
flash_ch2_state=xc_gpio_read_pin(RELAY_CH2_PIN);
@@ -249,14 +234,14 @@ void scan_433(void)
long_timer--;
}
if(rf433_sw_flag==1)
// if(rf433_sw_flag==1)
// {
// rf433_sw_flag=0;
// }
if(rf433_sw_flag==2)
{
rf433_sw_flag=0;
}
else if(rf433_sw_flag==2)
{
rf433_sw_flag=0;
power=3;
power=4;
key_state=KEY_SHORT;
led_state=2;
}
@@ -269,45 +254,45 @@ void scan_433(void)
}
if(power==3 && rf433_decoder_flag==true && key_state==KEY_SHORT ) //双击对码GPIO2
{
// if(power==3 && rf433_decoder_flag==true && key_state==KEY_SHORT ) //双击对码GPIO2
// {
//
//
// key_state=0;
// power=2;
// led_state=0;
//
//
//
// if(adress_ch2_index>4)
// {
// adress_ch2_index=0;
// }
//
// adress_ture_flag=0;
//
// for(i=0;i<5;i++)
// {
// if(adress_H_ch2[i]==adress_H && adress_L_ch2[i]==adress_L)
// {
// adress_ture_flag=1;
//
// break;
// }
// }
// if(adress_ture_flag==0)
// {
//
// adress_H_ch2[adress_ch2_index] = adress_H;
// adress_L_ch2[adress_ch2_index] = adress_L;
// adress_ch2_index++; // 索引自增
// }
//
//
// }
key_state=0;
power=2;
led_state=0;
if(adress_ch2_index>4)
{
adress_ch2_index=0;
}
adress_ture_flag=0;
for(i=0;i<5;i++)
{
if(adress_H_ch2[i]==adress_H && adress_L_ch2[i]==adress_L)
{
adress_ture_flag=1;
break;
}
}
if(adress_ture_flag==0)
{
adress_H_ch2[adress_ch2_index] = adress_H;
adress_L_ch2[adress_ch2_index] = adress_L;
adress_ch2_index++; // 索引自增
}
}
else if(power==4 && rf433_decoder_flag==true && key_state==KEY_SHORT ) //四击对码GPIO5
if(power==4 && rf433_decoder_flag==true && key_state==KEY_SHORT ) //四击对码GPIO5
{
@@ -366,14 +351,14 @@ void scan_433(void)
}
}
for(i=0; i<5; i++)
{
if(adress_H_ch2[i]==adress_H && adress_L_ch2[i]==adress_L)
{
match_ch|= MATCH_CH2; // 标记匹配到通道2
break;
}
}
// for(i=0; i<5; i++)
// {
// if(adress_H_ch2[i]==adress_H && adress_L_ch2[i]==adress_L)
// {
// match_ch|= MATCH_CH2; // 标记匹配到通道2
// break;
// }
// }
if(match_ch != 0)
@@ -3,13 +3,13 @@
#define RF433_FIFO_SIZE 256u
#define RF433_GLITCH_DYNAMIC_MIN 2u
#define RF433_GLITCH_DYNAMIC_MAX 4u
#define RF433_GLITCH_DYNAMIC_MIN 1u //2
#define RF433_GLITCH_DYNAMIC_MAX 1u //4
#define RF433_SYNC_LOW_MIN 35u //45改35
#define RF433_SYNC_LOW_MAX 200u //180改200
#define RF433_SYNC_HIGH_MIN 1u
#define RF433_SYNC_HIGH_MAX 15u //12改15
#define RF433_SYNC_HIGH_MIN 2u
#define RF433_SYNC_HIGH_MAX 30u //12改15
#define RF433_BIT_LEN 24u
#define RF433_REPEAT_CONFIRM 1u //2改1
@@ -19,9 +19,9 @@
#define RF433_BIT_TOTAL_MIN 3u //4改3
#define RF433_BIT_TOTAL_MAX 40u //35改40
#define RF433_PROCESS_MAX_ONCE 32u
#define RF433_PROCESS_MAX_ONCE 64u
#define RF433_FRAME_SCORE_MIN 50u //70改50
#define RF433_FRAME_SCORE_MIN 40u //70改50
#define RF433_BIT_SCORE_GOOD 4u
#define RF433_BIT_SCORE_NORMAL 3u
#define RF433_BIT_SCORE_POOR 1u
@@ -91,7 +91,7 @@ typedef struct
Rf433DecoderFrame_t frame;
bool frame_ready;
uint16_t anti_repeat_tick; // 新增:连发屏蔽倒计时
} Rf433Decode_t;
typedef struct
@@ -208,7 +208,7 @@ void rf433_decoder_init(void)
s_dec.frame_ready = false;
s_dec.ppl_locked = 0;
s_dec.window_mode = RF433_WINDOW_NORMAL;
s_dec.anti_repeat_tick=0; //新增
rf433_decode_reset();
rf433_repair_reset();
@@ -284,7 +284,7 @@ static bool rf433_is_sync(uint16_t high, uint16_t low)
return false;
}
if (low < (uint16_t)(high * 10u)) //12
if (low < (uint16_t)(high * 12u)) //12
{
return false;
}
@@ -500,8 +500,7 @@ static void rf433_output_code(uint32_t code)
s_dec.last_code = code;
s_dec.same_cnt = 1;
// // 换码直接清空屏蔽计时,不同按键不拦截
// s_dec.anti_repeat_tick = 0;
}
RF433_DETAIL_LOG("[RF433 REPEAT] code=0x%06X same=%d/%d\r\n",
@@ -519,8 +518,7 @@ static void rf433_output_code(uint32_t code)
s_dec.frame.score = s_dec.frame_score;
s_dec.frame_ready = true;
// // 输出后刷新连发屏蔽倒计时,一段时间内不再输出同码
// s_dec.anti_repeat_tick = RF433_ANTI_REPEAT_TICK;
s_dec.same_cnt = 0;
@@ -761,11 +759,7 @@ void rf433_decoder_process(void)
Rf433Pulse_t pulse;
uint8_t cnt = 0;
// // 新增:防重复倒计时全局递减
// if(s_dec.anti_repeat_tick > 0)
// {
// s_dec.anti_repeat_tick--;
// }
while ((cnt < RF433_PROCESS_MAX_ONCE) && rf433_fifo_pop(&pulse))
@@ -1,127 +1,260 @@
#include "switch_s.h"
#include "xc_drv_gpio.h"
#include "rf433.h"
// ==================== GPIO1 检测 ====================
uint8_t trig1_cnt = 0; // 连续触发次数
uint16_t trig1_timeout = 0; // 300ms 倒计时
uint8_t trig1_wait = 0; // 0=空闲 1=连续出触发
// ==================== GPIO19 检测 ====================
uint8_t trig2_cnt = 0; // 连续触发次数
uint16_t trig2_timeout = 0; // 300ms 倒计时
uint8_t trig2_wait = 0; // 0=空闲 1=连续出触发
/*
* ============================================================
* GPIO1 / S1 检测变量
* ============================================================
*/
uint8_t trig1_cnt = 0;
uint16_t trig1_timeout = 0;
uint8_t trig1_wait = 0;
uint8_t rf433_sw_flag=0; //进入对码标志
/*
* ============================================================
* RF433 对码标志
* ============================================================
*
* 0:无对码
* 2:GPIO1 快速按 5 次及以上进入对码
*/
uint8_t rf433_sw_flag = 0;
/*
* ============================================================
* 防抖状态机变量
* ============================================================
*/
static volatile debounce_state_t s1_state = DB_IDLE;
static volatile debounce_state_t s2_state = DB_IDLE;
static volatile uint16_t s1_debounce_cnt = 0;
static volatile uint16_t s2_debounce_cnt = 0;
/*
* ============================================================
* 按下持续时间计数
* ============================================================
*/
static volatile uint16_t s1_press_cnt = 0;
/*
* ============================================================
* 长按普通开关已处理标志
* ============================================================
*/
static volatile uint8_t s1_long_press_done = 0;
/*
* ============================================================
* 回弹点击标志
* ============================================================
*/
static volatile uint8_t s1_return_click_flag = 0;
/*
* ============================================================
* 5次对码失效标志
* ============================================================
*
* 作用:
* 快速拨动达到 5 次后,如果最后一次停留在打开状态超过 200ms,
* 则本次 5 次对码序列失效。
*
* 这样可以避免:
* 快速拨动 5 次后停留在打开一段时间,再关闭,仍然进入对码。
*/
static volatile uint8_t s1_pair_invalid_flag = 0;
/*
* ============================================================
* 防抖时间
* ============================================================
* trigger_check_process() 如果 10ms 调用一次:
* DEBOUNCE_MS = 2 表示 20ms 防抖
*/
#define DEBOUNCE_MS 2
/*
* ============================================================
* 释放标志
* ============================================================
*/
uint8_t switch1_RELEASE_flag = 0;
/*
* ============================================================
* 普通不回弹开关第一次按下标志
* ============================================================
*/
uint8_t s1_first_press_flag = 0;
/*
* ============================================================
* 上电时开关状态
* ============================================================
*/
uint8_t S1_first_on_state = 0;
#define DEBOUNCE_MS 2 //消抖时间40ms
//uint16_t switch1_debounce = 0;
//uint16_t switch2_debounce = 0;
uint8_t switch1_RELEASE_flag=0;
uint8_t switch2_RELEASE_flag=0;
uint8_t s1_first_press_flag = 0; //S2首次按下标志
uint8_t s2_first_press_flag = 0; //S2首次按下标志
uint8_t S1_first_on_state=0; //上电时开关的状态
uint8_t S2_first_on_state=0; //上电时开关的状态
void switch_init(void)
/*
* ============================================================
* S1 状态清理函数
* ============================================================
*/
static void switch_s1_clear_action_state(void)
{
trig1_cnt = 0;
trig1_timeout = 0;
trig1_wait = 0;
GPIO_InitCfg_t GPIO_InitCfg = { 0 }; // 清零初始化配置结构体
GPIO_InitCfg.Mux = GPIO_Mux0; // 选择功能复用器0
GPIO_InitCfg.FunSel = GPIO_Dx; // 选择GPIO功能(非特殊功能)
GPIO_InitCfg.Pull = GPIO_PULLUP; //上拉电阻使能
switch1_RELEASE_flag = 0;
s1_first_press_flag = 0;
s1_return_click_flag = 0;
s1_long_press_done = 0;
s1_press_cnt = 0;
GPIO_InitCfg.Dir = GPIO_DIR_INPUT; // 输出方向
GPIO_InitCfg.Int = FAIL_EDGE_INT; //使能中断
GPIO_InitCfg.Pin = SWITCH_S1_PIN; // 设置S1引脚
xc_gpio_init(&GPIO_InitCfg); // 初始化GPIO
GPIO_InitCfg.Dir = GPIO_DIR_INPUT; // 输出方向
GPIO_InitCfg.Int = FAIL_EDGE_INT; //使能中断
GPIO_InitCfg.Pin = SWITCH_S2_PIN; // 设置S2引脚
xc_gpio_init(&GPIO_InitCfg); // 初始化GPIO
xc_gpio_it_config(GPIO_1,FAIL_EDGE_INT);
xc_gpio_it_config(GPIO_19,FAIL_EDGE_INT);
NVIC_EnableIRQ(GPIO_IRQn);
//判断首次上电开关状态
if(xc_gpio_read_pin(SWITCH_S1_PIN)==0)
{
S1_first_on_state=1;
}
else
{
S1_first_on_state=0;
}
if(xc_gpio_read_pin(SWITCH_S2_PIN)==0)
{
S2_first_on_state=1;
}
else
{
S2_first_on_state=0;
}
/*
* 新增:
* 清理 5 次对码失效标志。
*/
s1_pair_invalid_flag = 0;
}
/*
* ============================================================
* S1 输出控制:GPIO5
* ============================================================
*/
static void switch_s1_output_on(void)
{
xc_gpio_write_pin(GPIO_5, GPIO_PIN_SET);
flash_ch1_state = xc_gpio_read_pin(GPIO_5);
flash_run();
}
static void switch_s1_output_off(void)
{
xc_gpio_write_pin(GPIO_5, GPIO_PIN_RESET);
flash_ch1_state = xc_gpio_read_pin(GPIO_5);
flash_run();
}
static void switch_s1_output_toggle(void)
{
if(xc_gpio_read_pin(GPIO_5))
{
xc_gpio_write_pin(GPIO_5, GPIO_PIN_RESET);
}
else
{
xc_gpio_write_pin(GPIO_5, GPIO_PIN_SET);
}
flash_ch1_state = xc_gpio_read_pin(GPIO_5);
flash_run();
}
/*
* ============================================================
* 开关 GPIO 初始化
* ============================================================
*/
void switch_init(void)
{
GPIO_InitCfg_t GPIO_InitCfg = { 0 };
GPIO_InitCfg.Mux = GPIO_Mux0;
GPIO_InitCfg.FunSel = GPIO_Dx;
GPIO_InitCfg.Pull = GPIO_PULLUP;
/*
* GPIO1 输入初始化
*/
GPIO_InitCfg.Dir = GPIO_DIR_INPUT;
GPIO_InitCfg.Int = FAIL_EDGE_INT;
GPIO_InitCfg.Pin = SWITCH_S1_PIN;
xc_gpio_init(&GPIO_InitCfg);
/*
* GPIO1 下降沿中断
*/
xc_gpio_it_config(GPIO_1, FAIL_EDGE_INT);
NVIC_EnableIRQ(GPIO_IRQn);
/*
* 上电时检测 GPIO1 初始状态
*/
if(xc_gpio_read_pin(SWITCH_S1_PIN) == 0)
{
S1_first_on_state = 1;
}
else
{
S1_first_on_state = 0;
}
}
/*
* ============================================================
* 开关检测主处理函数
* ============================================================
*
* 需要周期调用。
* 当前按 SWITCH_SCAN_PERIOD_MS = 10ms 计算。
*/
void trigger_check_process(void)
{
if(S1_first_on_state==1)
/*
* ========================================================
* 上电时 GPIO1 已经按下
* ========================================================
*/
if(S1_first_on_state == 1)
{
S1_first_on_state=0;
s1_state=DB_PRESS_DEBOUNCE;
}
if(S2_first_on_state==1)
{
S2_first_on_state=0;
s2_state=DB_PRESS_DEBOUNCE;
S1_first_on_state = 0;
s1_state = DB_PRESS_DEBOUNCE;
s1_debounce_cnt = DEBOUNCE_MS;
}
// if(S1_first_on_state==1)
// {
// S1_first_on_state=0;
// s1_first_press_flag=1;
// s1_state=DB_PRESSED;
// }
// if(S2_first_on_state==1)
// {
// S2_first_on_state=0;
// s2_first_press_flag=1;
// s2_state=DB_PRESSED;
// }
/*
* ========================================================
* S1 状态机
* ========================================================
*/
switch(s1_state)
{
case DB_IDLE: //空闲状态
case DB_IDLE:
/*
* 空闲状态低电平补检,防止漏中断。
*/
if(xc_gpio_read_pin(SWITCH_S1_PIN) == 0)
{
s1_state = DB_PRESS_DEBOUNCE;
s1_debounce_cnt = DEBOUNCE_MS;
}
break;
case DB_PRESS_DEBOUNCE: //按下防抖
if(s1_debounce_cnt>0) s1_debounce_cnt--;
if(s1_debounce_cnt==0)
case DB_PRESS_DEBOUNCE:
if(s1_debounce_cnt > 0)
{
//防抖时间到,采样当前电平是否是低电平
if(xc_gpio_read_pin(SWITCH_S1_PIN)==0)
s1_debounce_cnt--;
}
if(s1_debounce_cnt == 0)
{
s1_state = DB_PRESSED; //进入按下状态,不响应中断
if(xc_gpio_read_pin(SWITCH_S1_PIN) == 0)
{
s1_state = DB_PRESSED;
s1_press_cnt = 0;
s1_long_press_done = 0;
/*
* 连续触发计数
*/
if(trig1_wait == 0)
{
trig1_cnt = 1;
@@ -130,300 +263,325 @@ void trigger_check_process(void)
}
else
{
if(trig1_timeout>0)
if(trig1_timeout > 0)
{
trig1_cnt++;
}
else
{
/*
* 如果等待标志还在,但超时已经为 0,
* 说明旧状态异常,重新作为第一次点击。
*/
trig1_cnt = 1;
}
trig1_timeout = TRIGGER_TIMEOUT_MS;
//
}
}
else
{
// 杂波导致误触,回到空闲
s1_state = DB_IDLE;
}
}
break;
case DB_PRESSED:
/*
* 按下超过 200ms
* 认为是普通不回弹墙壁开关,打开 GPIO5。
*/
if(s1_long_press_done == 0)
{
if(s1_press_cnt < RETURN_SWITCH_CNT)
{
s1_press_cnt++;
}
case DB_PRESSED: //确认按下
if(s1_press_cnt >= RETURN_SWITCH_CNT)
{
s1_long_press_done = 1;
/*
* 普通不回弹开关只处理第一次有效按下。
*
* 注意:
* 这里仍然要求 trig1_cnt == 1
* 避免快速多次点击被误判成长按开关打开。
*/
if(trig1_cnt == 1 && trig1_wait == 1)
{
trig1_cnt = 0;
trig1_timeout = 0;
trig1_wait = 0;
s1_return_click_flag = 0;
switch1_RELEASE_flag = 0;
// 等待引脚回高电平
s1_first_press_flag = 1;
switch_s1_output_on();
}
else if(trig1_cnt >= TRIGGER_CONTINUE_CNT)
{
/*
* ====================================================
* 关键新增修复
* ====================================================
*
* 如果已经快速拨动到了 5 次或以上,
* 但是最后一次保持在打开状态超过 200ms,
* 那么这一次对码序列作废。
*
* 后面即使再关闭,也不能进入对码。
*/
s1_pair_invalid_flag = 1;
/*
* 防止旧的回弹点击标志残留。
*/
s1_return_click_flag = 0;
switch1_RELEASE_flag = 0;
}
}
}
/*
* 检测释放
*/
if(xc_gpio_read_pin(SWITCH_S1_PIN) == 1)
{
s1_state = DB_RELEASE_DEBOUNCE;
s1_debounce_cnt = DEBOUNCE_MS; // 释放30ms防抖
s1_debounce_cnt = DEBOUNCE_MS;
}
break;
case DB_RELEASE_DEBOUNCE: //释放防抖
if(s1_debounce_cnt > 0) s1_debounce_cnt--;
case DB_RELEASE_DEBOUNCE:
if(s1_debounce_cnt > 0)
{
s1_debounce_cnt--;
}
if(s1_debounce_cnt == 0)
{
if(xc_gpio_read_pin(SWITCH_S1_PIN) == 1) // 确认释放
if(xc_gpio_read_pin(SWITCH_S1_PIN) == 1)
{
s1_state = DB_IDLE; // 回到空闲
s1_state = DB_IDLE;
/*
* ====================================================
* 关键新增修复
* ====================================================
*
* 如果前面已经判定:
* 快速拨动 5 次后,最后一次停留打开超过 200ms,
* 那么这次释放只是无效释放。
*
* 直接清理状态,不再进入后面的 5 次对码处理。
*/
if(s1_pair_invalid_flag == 1)
{
switch_s1_clear_action_state();
}
else
{
/*
* 释放后重新给连击窗口计时。
*/
trig1_timeout = TRIGGER_TIMEOUT_MS;
switch1_RELEASE_flag = 1;
switch1_RELEASE_flag=1;
if(s1_first_press_flag==1)
if(s1_long_press_done == 0)
{
s1_first_press_flag=2;
}
/*
* 200ms 内释放:
* 回弹点击。
*/
s1_return_click_flag = 1;
}
else
{
// 再等20ms
s1_debounce_cnt = DEBOUNCE_MS; // 30ms
/*
* 普通不回弹开关释放。
*/
if(s1_first_press_flag == 1)
{
s1_first_press_flag = 2;
}
}
break;
}
switch(s2_state)
{
case DB_IDLE: //空闲状态
break;
case DB_PRESS_DEBOUNCE: //按下防抖
if(s2_debounce_cnt>0) s2_debounce_cnt--;
if(s2_debounce_cnt==0)
{
//防抖时间到,采样当前电平是否是低电平
if(xc_gpio_read_pin(SWITCH_S2_PIN)==0)
{
s2_state = DB_PRESSED; //进入按下状态,不响应中断
if(trig2_wait == 0)
{
trig2_cnt = 1;
trig2_timeout = TRIGGER_TIMEOUT_MS;
trig2_wait = 1;
}
else
{
if(trig2_timeout>0)
{
trig2_cnt++;
}
trig2_timeout = TRIGGER_TIMEOUT_MS;
}
}
else
{
// 杂波导致误触,回到空闲
s2_state = DB_IDLE;
s1_debounce_cnt = DEBOUNCE_MS;
}
}
break;
case DB_PRESSED: //确认按下
// 等待引脚回高电平
if(xc_gpio_read_pin(SWITCH_S2_PIN) == 1)
{
s2_state = DB_RELEASE_DEBOUNCE;
s2_debounce_cnt = DEBOUNCE_MS; // 释放30ms防抖
}
break;
case DB_RELEASE_DEBOUNCE: //释放防抖
if(s2_debounce_cnt > 0) s2_debounce_cnt--;
if(s2_debounce_cnt == 0)
{
if(xc_gpio_read_pin(SWITCH_S2_PIN) == 1) // 确认释放
{
s2_state = DB_IDLE; // 回到空闲
trig2_timeout = TRIGGER_TIMEOUT_MS;
switch2_RELEASE_flag=1;
if(s2_first_press_flag==1)
{
s2_first_press_flag=2;
}
}
else
{
// 再等20ms
s2_debounce_cnt = DEBOUNCE_MS; // 30ms
}
}
default:
s1_state = DB_IDLE;
break;
}
// S1 超时处理
/*
* ========================================================
* S1 连击超时处理
* ========================================================
*/
if(trig1_timeout > 0)
{
trig1_timeout--;
}
else if(trig1_timeout==0 && switch1_RELEASE_flag==1 )
else if(trig1_timeout == 0 && switch1_RELEASE_flag == 1)
{
switch1_RELEASE_flag=2;
switch1_RELEASE_flag = 2;
}
// 600ms倒计时结束,且有计数
if(trig1_timeout == 0 && trig1_cnt == 1 && trig1_wait == 1 && s1_state == DB_PRESSED) //确定按下1次
/*
* ========================================================
* S1 回弹开关处理
* ========================================================
*/
if(trig1_timeout == 0 &&
switch1_RELEASE_flag == 2 &&
s1_state == DB_IDLE &&
s1_return_click_flag == 1)
{
//printf("按下一次 trig1_cnt %d\r\n",trig1_cnt);
trig1_cnt = 0;
trig1_wait = 0;
s1_first_press_flag=1;
xc_gpio_write_pin(GPIO_5,GPIO_PIN_SET);
flash_ch1_state=xc_gpio_read_pin(GPIO_5);
flash_run();
if(trig1_cnt == 1 && trig1_wait == 1)
{
/*
* 单击:
* GPIO5 翻转。
*/
switch_s1_clear_action_state();
switch_s1_output_toggle();
}
else if(trig1_timeout == 0 && (trig1_cnt > 1 && trig1_cnt < TRIGGER_CONTINUE_CNT))
else if(trig1_cnt > 1 && trig1_cnt < TRIGGER_CONTINUE_CNT)
{
// printf("乱按 trig1_cnt %d\r\n",trig1_cnt);
trig1_cnt = 0;
trig1_wait = 0;
/*
* 2~4 次:
* 不动作,但必须彻底清状态。
*/
switch_s1_clear_action_state();
}
else if(trig1_timeout == 0 && trig1_cnt >= TRIGGER_CONTINUE_CNT)
else if(trig1_cnt >= TRIGGER_CONTINUE_CNT)
{
//printf("对码 trig1_cnt %d\r\n",trig1_cnt);
if( s1_state == DB_IDLE)
{
rf433_sw_flag = 2; // HPW421: S1/GPIO5 is the single relay L2 pairing key
trig1_cnt = 0;
trig1_wait = 0;
}
else
{
trig1_cnt = 0;
trig1_wait = 0;
}
}
else if(trig1_timeout == 0 && switch1_RELEASE_flag==2 && s1_state == DB_IDLE && s1_first_press_flag==2 )
{
// printf("低电平 trig2_cnt %d\r\n",trig2_cnt);
s1_state = DB_IDLE;
switch1_RELEASE_flag=0;
s1_first_press_flag=0;
xc_gpio_write_pin(GPIO_5,GPIO_PIN_RESET);
flash_ch1_state=xc_gpio_read_pin(GPIO_5);
flash_run();
}
// S2 超时处理
if(trig2_timeout > 0)
{
trig2_timeout--;
}
else if(trig2_timeout==0 && switch2_RELEASE_flag==1 )
{
switch2_RELEASE_flag=2;
}
// 600ms倒计时结束,且有计数
if(trig2_timeout == 0 && trig2_cnt == 1 && trig2_wait == 1 && s2_state == DB_PRESSED) //确定按下1次
{
trig2_cnt = 0;
trig2_wait = 0;
s2_first_press_flag=1;
xc_gpio_write_pin(GPIO_2,GPIO_PIN_SET);
flash_ch2_state=xc_gpio_read_pin(GPIO_2);
flash_run();
}
else if(trig2_timeout == 0 && (trig2_cnt > 1 && trig2_cnt < TRIGGER_CONTINUE_CNT))
{
trig2_cnt = 0;
trig2_wait = 0;
}
else if(trig2_timeout == 0 && trig2_cnt >= TRIGGER_CONTINUE_CNT)
{
if( s2_state == DB_IDLE)
/*
* 5 次及以上:
* 进入对码。
*
* 这里增加 s1_pair_invalid_flag 判断。
* 正常快速拨动 5 次并最终关闭:进入对码。
* 拨动 5 次后停留打开一段时间再关闭:不进入对码。
*/
if(s1_pair_invalid_flag == 0)
{
rf433_sw_flag = 2;
trig2_cnt = 0;
trig2_wait = 0;
}
switch_s1_clear_action_state();
}
else
{
trig2_cnt = 0;
trig2_wait = 0;
/*
* 异常兜底清理。
*/
switch_s1_clear_action_state();
}
}
else if(trig2_timeout == 0 && switch2_RELEASE_flag==2 && s2_state == DB_IDLE && s2_first_press_flag==2 )
/*
* ========================================================
* 普通不回弹开关释放后关闭 GPIO5
* ========================================================
*/
else if(trig1_timeout == 0 &&
switch1_RELEASE_flag == 2 &&
s1_state == DB_IDLE &&
s1_first_press_flag == 2)
{
s2_state = DB_IDLE;
switch2_RELEASE_flag=0;
s2_first_press_flag=0;
xc_gpio_write_pin(GPIO_2,GPIO_PIN_RESET);
flash_ch2_state=xc_gpio_read_pin(GPIO_2);
flash_run();
/*
* 普通不回弹开关释放后关闭 GPIO5。
*/
switch_s1_clear_action_state();
switch_s1_output_off();
}
/*
* ========================================================
* 兜底:2~4 次超时
* ========================================================
*/
else if(trig1_timeout == 0 &&
trig1_cnt > 1 &&
trig1_cnt < TRIGGER_CONTINUE_CNT)
{
/*
* 2~4 次:
* 不动作,但是必须清理全部状态。
*/
switch_s1_clear_action_state();
}
/*
* ========================================================
* 兜底:5 次及以上超时
* ========================================================
*/
else if(trig1_timeout == 0 &&
trig1_cnt >= TRIGGER_CONTINUE_CNT &&
s1_state == DB_IDLE)
{
/*
* 5 次及以上:
*
* 这里必须保留对码。
* 因为正常快速拨动 5 次后,经常就是走这个兜底分支进入对码。
*
* 但是增加 s1_pair_invalid_flag 判断:
* 如果是“5次后停留打开超过200ms再关闭”,则不允许对码。
*/
if(s1_pair_invalid_flag == 0)
{
rf433_sw_flag = 2;
}
switch_s1_clear_action_state();
}
/*
* ========================================================
* 兜底:异常释放状态
* ========================================================
*/
else if(trig1_timeout == 0 &&
switch1_RELEASE_flag == 2 &&
s1_state == DB_IDLE &&
trig1_cnt == 0 &&
trig1_wait == 0)
{
/*
* 防止残留 switch1_RELEASE_flag == 2。
*/
switch_s1_clear_action_state();
}
}
/*
* ============================================================
* GPIO 中断回调
* ============================================================
*/
void gpio_intr_callback(uint64_t intr_sta)
{
if((intr_sta & ((uint64_t)1 << SWITCH_S1_PIN)) != 0) //如果是GPIO_1的中断
/*
* GPIO1 下降沿中断
*/
if((intr_sta & ((uint64_t)1 << SWITCH_S1_PIN)) != 0)
{
if(s1_state == DB_IDLE && S1_first_on_state==0) // 只有空闲才响应
if(s1_state == DB_IDLE && S1_first_on_state == 0)
{
s1_state = DB_PRESS_DEBOUNCE;
s1_debounce_cnt = DEBOUNCE_MS; // 40ms防抖
}
}
if((intr_sta & ((uint64_t)1 << SWITCH_S2_PIN)) != 0) //如果是GPIO_19的中断
{
if(s2_state == DB_IDLE && S2_first_on_state==0)
{
s2_state = DB_PRESS_DEBOUNCE;
s2_debounce_cnt = DEBOUNCE_MS;
s1_debounce_cnt = DEBOUNCE_MS;
}
}
}
@@ -1,47 +1,75 @@
#ifndef __SWITCH_S_H__
#define __SWITCH_S_H__
#include <stdint.h>
#include "xc_drv_gpio.h"
/*
* ============================================================
* 开关检测说明
* ============================================================
*
* 当前版本只保留 S1
*
* 输入:
* GPIO1
*
* 输出:
* GPIO5
*
* 功能:
*
* 1. 普通不回弹墙壁开关:
* - GPIO1 按下超过 200ms 不松手:
* GPIO5 打开。
* - GPIO1 释放后:
* GPIO5 关闭。
*
* 2. 回弹开关:
* - GPIO1 200ms 内按下松开:
* 认为是一次回弹点击。
* - 单击 1 次:
* GPIO5 翻转,开变关,关变开。
* - 快速点击 2~4 次:
* 不动作。
* - 快速点击 5 次及以上,并且最终释放为关:
* rf433_sw_flag = 2,进入对码。
*
* 3. 修复点:
* - 对码后彻底清理所有开关状态,避免后续只能开不能关。
* - DB_IDLE 状态增加 GPIO1 低电平补检,避免漏中断。
* - 快速拨动 5 次后如果最后停在打开状态,等一段时间再关,
* 不再进入对码。
*/
// 400ms 超时
// trigger_check_process() 实际调用周期,单位 ms
#define SWITCH_SCAN_PERIOD_MS 10
// 连击超时时间:20 * 10ms = 200ms
#define TRIGGER_TIMEOUT_MS 20
// 连续触发次数
// 连续触发次数,达到 5 次进入对码
#define TRIGGER_CONTINUE_CNT 5
#define SWITCH_S1_PIN GPIO_1
#define SWITCH_S2_PIN GPIO_19
// 回弹开关判断时间:200ms 内松手,认为是回弹开关
#define RETURN_SWITCH_TIME_MS 200
#define RETURN_SWITCH_CNT (RETURN_SWITCH_TIME_MS / SWITCH_SCAN_PERIOD_MS)
// S1 输入引脚
#define SWITCH_S1_PIN GPIO_1
// 防抖状态机
typedef enum {
DB_IDLE = 0, // 空闲,等待下降沿
DB_PRESS_DEBOUNCE, // 按下防抖中
DB_PRESSED, // 确认按下,等待释放
DB_RELEASE_DEBOUNCE // 释放防抖
DB_IDLE = 0,
DB_PRESS_DEBOUNCE,
DB_PRESSED,
DB_RELEASE_DEBOUNCE
} debounce_state_t;
extern uint8_t rf433_sw_flag;
extern uint8_t S1_first_on_state;
extern uint8_t S2_first_on_state;
void switch_init(void);
void trigger_check_process(void);
#endif
File diff suppressed because it is too large Load Diff
@@ -21,8 +21,8 @@ Target DLL: UL2CM3.DLL V1.164.8.0
Dialog DLL: TARMCM1.DLL V1.14.6.0
<h2>Project:</h2>
C:\Users\QJM\Desktop\6517_SDK\XC6XXX系列SDK_20260428\XC65+XC62系列SDK_20260428\project\example\ble\ble_peripheral\mdk\ble_peripheral.uvprojx
Project File Date: 07/03/2026
C:\Users\QJM\Desktop\421发布58兼容两种遥控\project\example\ble\ble_peripheral\mdk\ble_peripheral.uvprojx
Project File Date: 07/21/2026
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\Keil_v5\ARM\ARMCC\Bin'
@@ -34,91 +34,94 @@ compiling app_batt.c...
compiling arch_main.c...
..\app\src\arch_main.c(202): warning: #177-D: variable "spi_idx" was declared but never referenced
uint8_t spi_idx=0;
..\app\src\arch_main.c(341): warning: #223-D: function "rf_tx_power_set" declared implicitly
..\app\src\arch_main.c(340): warning: #223-D: function "rf_tx_power_set" declared implicitly
rf_tx_power_set(TRANS_POWER_0_5DBM);
..\app\src\arch_main.c: 2 warnings, 0 errors
compiling app_sec.c...
compiling usr_server.c...
..\app\src\usr_server.c(78): warning: #550-D: variable "ble_state_last_ch1_count" was set but never used
static uint8_t ble_state_last_ch1_count = 0;
..\app\src\usr_server.c: 1 warning, 0 errors
compiling aes.c...
compiling app_task.c...
compiling xc_drv_adc.c...
compiling nvds.c...
compiling xc_drv_aotimer.c...
compiling xc_drv_bor.c...
compiling xc_gap_api.c...
compiling xc_gatt_client_api.c...
compiling xc_drv_bor.c...
compiling xc_gatt_server_api.c...
compiling xc_drv_calib.c...
compiling xc_drv_dma.c...
compiling xc_drv_clock.c...
compiling xc_drv_fmc_spi_dma.c...
compiling xc_drv_fmc_spi.c...
compiling xc_drv_gpio.c...
compiling xc_drv_i2c.c...
compiling xc_drv_gpio.c...
compiling xc_drv_pga.c...
compiling xc_drv_pwm.c...
compiling xc_drv_pwr.c...
compiling xc_drv_qdec.c...
compiling xc_drv_pwr.c...
compiling xc_drv_rtc.c...
compiling xc_drv_spi.c...
compiling xc_drv_spi_dma.c...
compiling xc_drv_sw_i2c.c...
compiling xc_drv_systick.c...
compiling xc_drv_timer.c...
compiling xc_drv_uart_dma.c...
compiling xc_drv_uart.c...
compiling xc_drv_uart_dma.c...
compiling xc_drv_wdt.c...
compiling timer.c...
compiling uart_1.c...
compiling rf433.c...
..\app\src\rf433.c(128): warning: #177-D: function "set_click" was declared but never referenced
static void set_click(void)
..\app\src\rf433.c: 1 warning, 0 errors
compiling switch_s.c...
compiling fmc_spi_1.c...
compiling led.c...
compiling switch_s.c...
compiling key.c...
compiling timeslice.c...
compiling ota_flash_interface.c...
compiling key.c...
compiling uart_1.c...
compiling rf433.c...
..\app\src\rf433.c(116): warning: #177-D: function "set_click" was declared but never referenced
static void set_click(void)
..\app\src\rf433.c: 1 warning, 0 errors
compiling rf433_decoder.c...
compiling ota_server.c...
compiling ota_flash_interface.c...
compiling ota_protocol.c...
..\app\src\ota_protocol.c(149): warning: #550-D: variable "sw_ver" was set but never used
uint16_t sw_ver;
..\app\src\ota_protocol.c(150): warning: #550-D: variable "rom_ver" was set but never used
uint16_t rom_ver;
..\app\src\ota_protocol.c: 2 warnings, 0 errors
compiling ota_server.c...
linking...
.\Linker\cpu_xip.scat(21): warning: L6329W: Pattern uread4.o(.text) only matches removed unused sections.
Program Size: Code=28664 RO-data=1784 RW-data=3000 ZI-data=4192
Program Size: Code=28456 RO-data=1784 RW-data=3016 ZI-data=4192
Finished: 0 information, 1 warning and 0 error messages.
After Build - User command #1: fromelf --bin --output=app.bin .\Objects\Xinc_ble_sdk.axf
After Build - User command #2: .\output_tool\Double_ota\ge_ota.bat
Size of file: 30568 bytes.
all_size=30568
size:30568 PageCNT120
Size of file: 30368 bytes.
all_size=30368
size:30368 PageCNT119
dual_xip
length:30984
size:30984
length:30728
size:30728
Addr:12000
Size:0x7800
Size:0x7700
BAddr:0x12000
Acheck:0x8ed9ea0
Acheck:0x21e62240
SoftVer:0x10
RomVer:0x20
LoadAddr:0x11012000
Is xip ota?:1
ota_data.bin success已复制 1 个文件。
Size of file: 30568 bytes.
all_size=30568
size:30568 PageCNT120
Size of file: 30368 bytes.
all_size=30368
size:30368 PageCNT119
dual_xip
length:30984
size:30984
length:30728
size:30728
Addr:12000
Size:0x7800
Size:0x7700
BAddr:0x1e000
Acheck:0x8ed9ea0
Acheck:0x21e62240
SoftVer:0x10
RomVer:0x20
LoadAddr:0x11012000
@@ -152,10 +155,440 @@ is_db=1
is_th=0
需要填充0个sector
all_size:1a000
size: 30568
size: 30368
updata file success !
已复制 1 个文件。
".\Objects\Xinc_ble_sdk.axf" - 0 Error(s), 6 Warning(s).
总有2个命令行参数
可 执 行文 件 名:C:\Users\QJM\Desktop\421发布58兼容两种遥控\tools\offline_burn\Xinc_mac_tool.exe
第一个命令行参数:40-ab-00-cd-01-01
第二个命令行参数:1000000
限制烧录次数burn_times=1000000
mac:40-ab-00-cd-01-01
0X40 0XAB 0 0XCD 0X1 0X1
Size of file: 106496 bytes.
crc:1:f4cf18e0
crc:2:8fddd820
crc:3:481623e0
crc:4:d6120320
crc:5:36e1e360
crc:6:3faa39c0
crc:7:5f951c60
crc:8:25b14e0
crc:9:a2fbe460
crc:10:71af8e0
crc:11:ba65bd20
crc:12:2fb17760
crc:13:416afca0
crc:14:e1270f60
crc:15:246e13c0
crc:16:7f67c320
crc:17:1946dba0
crc:18:2105cfe0
crc:19:a79444e0
crc:20:74a721a0
crc:21:11d3fd00
crc:22:d2b1dd80
crc:23:73d8380
crc:24:8d093260
crc:25:9aaaec0
crc:26:c6f0eb20
crc:27:25ecd560
crc:28:57384220
crc:29:b08b2bc0
crc:30:5dd40500
crc:31:b2d345c0
crc:32:35241b80
crc:33:caf9a220
crc:34:4811f7e0
crc:35:760e56e0
crc:36:fe5caee0
crc:37:9096fd00
crc:38:2cae7660
crc:39:b60a5900
crc:40:548ad6c0
crc:41:8b6eafa0
crc:42:f28bd0e0
crc:43:d17f94a0
crc:44:de59a2c0
crc:45:73193080
crc:46:d8da74a0
crc:47:4c632020
crc:48:66695b00
crc:49:d76df9a0
crc:50:23a62e0
crc:51:93c10ba0
crc:52:964f3c80
crc:53:7fb6c120
crc:54:d6107500
crc:55:ed2b0960
crc:56:f5764860
crc:57:40fc3220
crc:58:417f8300
crc:59:8c0de520
crc:60:ee46dbc0
crc:61:9e85c540
crc:62:c87b9c40
crc:63:6ba3760
crc:64:e7ac58a0
crc:65:eca7ba0
crc:66:54d67d40
crc:67:4b6989e0
crc:68:5d052240
crc:69:78b9c760
crc:70:23c42fe0
crc:71:a95fbd00
crc:72:dd9fa100
crc:73:d4d2dca0
crc:74:898379e0
crc:75:3e2171a0
crc:76:d05fbdc0
crc:77:b55abc0
crc:78:bf93d1c0
crc:79:c21b1160
crc:80:6a33c220
crc:81:e6c64a60
crc:82:4646c100
crc:83:13fe54c0
crc:84:62301960
crc:85:536f3040
crc:86:dbb13220
crc:87:db527e80
crc:88:225fd560
crc:89:c1404a40
crc:90:6988dca0
crc:91:38527fc0
crc:92:559ff600
crc:93:3eb92f80
crc:94:7dfc6e00
crc:95:50e440a0
crc:96:81ae8760
crc:97:a5fb6f80
crc:98:e245bc20
crc:99:3fe0c960
crc:100:57890aa0
crc:101:33c0b760
crc:102:d1ec1d20
crc:103:d76feb20
crc:104:ac2c800
crc:105:fa858ca0
crc:106:db8ff560
crc:107:697479e0
crc:108:4e57c7e0
crc:109:3746aac0
crc:110:5af187a0
crc:111:7fdc0820
crc:112:df356a80
crc:113:45167a0
crc:114:f0b85520
crc:115:ed30b580
crc:116:9c166240
crc:117:46048720
crc:118:488ae100
crc:119:4f508200
crc:120:5ad6bd00
crc:121:6d9de7c0
crc:122:12e49340
crc:123:c8115e80
crc:124:29e709a0
crc:125:54bef0a0
crc:126:f7e21c20
crc:127:89e00720
crc:128:4b140
crc:129:d52f90c0
crc:130:38d12ec0
crc:131:39cc5680
crc:132:85a77a40
crc:133:996662e0
crc:134:bbeca6e0
crc:135:5cf67420
crc:136:99ce0700
crc:137:cfbd25c0
crc:138:548176e0
crc:139:f7799d00
crc:140:5f660080
crc:141:f0c64ec0
crc:142:86f6bb00
crc:143:2f3628a0
crc:144:f056f820
crc:145:417b1460
crc:146:52aa4360
crc:147:7f2402e0
crc:148:c193a040
crc:149:bd761120
crc:150:1e1cf880
crc:151:94606b40
crc:152:815c8960
crc:153:1ef41580
crc:154:f3800680
crc:155:6295cd80
crc:156:9075db00
crc:157:b6165500
crc:158:47e725a0
crc:159:7a5e3d40
crc:160:c5577640
crc:161:f546bcc0
crc:162:67d4a860
crc:163:cd28b4c0
crc:164:45898860
crc:165:ae2819a0
crc:166:b79dd2e0
crc:167:f489f240
crc:168:df61c740
crc:169:ae51ac40
crc:170:459d15e0
crc:171:c8af6bc0
crc:172:d6b41aa0
crc:173:ce9fdde0
crc:174:72dbb600
crc:175:6232bae0
crc:176:f58c59e0
crc:177:47438c20
crc:178:78dd88e0
crc:179:3bc755e0
crc:180:cf10e980
crc:181:6e6153e0
crc:182:1ffbbbc0
crc:183:9238a3c0
crc:184:3071fac0
crc:185:1614fda0
crc:186:b9fbc300
crc:187:61485ac0
crc:188:d4162060
crc:189:c289f360
crc:190:5fa88860
crc:191:2c0f4640
crc:192:13002dc0
crc:193:ecafbb00
crc:194:6be8cde0
crc:195:80b01920
crc:196:74245ea0
crc:197:d62fd620
crc:198:e48febe0
crc:199:31b28880
crc:200:587ec140
crc:201:39f67920
crc:202:1328aa40
crc:203:c2770ca0
crc:204:678bb340
crc:205:7e9dc6c0
crc:206:ad3b1b80
crc:207:3a7b88e0
crc:208:78c43720
crc:209:fbacbe80
crc:210:7d88cc00
crc:211:fee53700
crc:212:ffbe6240
crc:213:f487ea60
crc:214:104e5c00
crc:215:afb84840
crc:216:20082cc0
crc:217:89935020
crc:218:662b46a0
crc:219:17ce8a00
crc:220:b0906840
crc:221:1e2171a0
crc:222:82e97380
crc:223:9746b680
crc:224:c0748fe0
crc:225:fe938d60
crc:226:25504640
crc:227:efe909a0
crc:228:319f2600
crc:229:25e9bfe0
crc:230:3c802800
crc:231:470b0a00
crc:232:fb95bf20
crc:233:caaaaac0
crc:234:fdef3ea0
crc:235:8d7aaea0
crc:236:fc99d20
crc:237:93f98240
crc:238:6d5b5880
crc:239:3f057f80
crc:240:6bd740a0
crc:241:7ed04080
crc:242:aadbca0
crc:243:2b1b600
crc:244:d7875260
crc:245:e0477fa0
crc:246:28aa0280
crc:247:19ad47e0
crc:248:246ce200
crc:249:e5336d60
crc:250:c890ae20
crc:251:fe426cc0
crc:252:2cad39c0
crc:253:29967280
crc:254:6504de80
crc:255:469509e0
crc:256:1d5f4ce0
crc:257:c08f7fc0
crc:258:af5a6a0
crc:259:c2da6260
crc:260:c598a440
crc:261:938c2b20
crc:262:e68bc0e0
crc:263:a539f940
crc:264:36525220
crc:265:fa4db8a0
crc:266:200e0ae0
crc:267:e5c16280
crc:268:539f27c0
crc:269:b1cd6900
crc:270:46abe5c0
crc:271:677e3800
crc:272:ee804420
crc:273:2a6ad2a0
crc:274:7f51a1c0
crc:275:393f7ea0
crc:276:8e4e6680
crc:277:bfe05480
crc:278:26085340
crc:279:f6b6c0e0
crc:280:e4bc0360
crc:281:7e0b9f60
crc:282:d0f2da20
crc:283:f2afb8c0
crc:284:a56c76c0
crc:285:2e5e6880
crc:286:c5faf120
crc:287:a8dd78c0
crc:288:1000fca0
crc:289:473d920
crc:290:cbdcd5e0
crc:291:e994f120
crc:292:7bec0380
crc:293:189ecea0
crc:294:31b6f080
crc:295:b5a84fc0
crc:296:2270680
crc:297:29c1f260
crc:298:8e157300
crc:299:bed38ec0
crc:300:c9ac64a0
crc:301:366bb540
crc:302:7e5c34c0
crc:303:2abe5660
crc:304:99dd2ba0
crc:305:eec6e920
crc:306:259991a0
crc:307:801903e0
crc:308:4b6a4520
crc:309:d99b8740
crc:310:dd845d60
crc:311:c6f0edc0
crc:312:d80b8fe0
crc:313:d833f560
crc:314:96bd6a60
crc:315:88cceb20
crc:316:43d3a9c0
crc:317:7a38df80
crc:318:fc744c0
crc:319:b15e7ea0
crc:320:96870540
crc:321:cfa02dc0
crc:322:c38c2c80
crc:323:fb416440
crc:324:fdcff660
crc:325:ffa044c0
crc:326:44000ce0
crc:327:bdcc1ae0
crc:328:6924f0a0
crc:329:19858380
crc:330:5d78b7c0
crc:331:756a43c0
crc:332:ca474d80
crc:333:625b23c0
crc:334:98f60040
crc:335:244bf920
crc:336:12f64cc0
crc:337:69e55020
crc:338:2f2e1e40
crc:339:aa025cc0
crc:340:23031ec0
crc:341:33fda400
crc:342:bcfa3300
crc:343:bf95b840
crc:344:84ddc760
crc:345:538d8580
crc:346:bcb51720
crc:347:f3abc820
crc:348:f1b137e0
crc:349:4c15c420
crc:350:ae0825a0
crc:351:e0cc3640
crc:352:ab8dee80
crc:353:f21cc5a0
crc:354:82375ba0
crc:355:e3532440
crc:356:fd119e40
crc:357:b6b8ccc0
crc:358:1d0be220
crc:359:5ec9fc60
crc:360:29dda300
crc:361:6971e3e0
crc:362:243e3be0
crc:363:eab8cca0
crc:364:d43e8120
crc:365:19fc9e80
crc:366:f21d3980
crc:367:691221c0
crc:368:4b291440
crc:369:7df61720
crc:370:ad9aeac0
crc:371:23f0f3c0
crc:372:e4039100
crc:373:a67190c0
crc:374:c7ec2860
crc:375:4f60c3e0
crc:376:a49183e0
crc:377:ba90db80
crc:378:bee37560
crc:379:76c755c0
crc:380:2968c780
crc:381:57a99840
crc:382:90bb99e0
crc:383:db700800
crc:384:57d6ba20
crc:385:fc8581c0
crc:386:4d3b40
crc:387:e2c8f0a0
crc:388:cd09d080
crc:389:b3541400
crc:390:ef541da0
crc:391:876504c0
crc:392:ffd09800
crc:393:1dbef980
crc:394:c6c85740
crc:395:af76bce0
crc:396:76538ca0
crc:397:91e60a60
crc:398:698e0280
crc:399:34399e80
crc:400:7f978f00
crc:401:fa26d6c0
crc:402:b6a12140
crc:403:1b39dc20
crc:404:5f86d180
crc:405:27b710c0
crc:406:b3fb8b60
crc:407:c9e121e0
crc:408:7b6732e0
crc:409:78e37d40
crc:410:6046e0
crc:411:fc3f7fa0
crc:412:17b44fe0
crc:413:3728d240
crc:414:b7a4a8e0
crc:415:df464f60
PageCNT:416remain:256file_sumcheck:df464f60 i:416
length:1a000
00 106496updata mac success !
merge file success !
Checksum source: C:\Users\QJM\Desktop\421发布58兼容两种遥控\tools\offline_burn\40-ab-00-cd-01-01_DF464F60_1000000.bin
Online BIN: C:\Users\QJM\Desktop\421发布58兼容两种遥控\release\online\HPW421_V1.3_XC6517_DF464F60.bin
OTA BIN: C:\Users\QJM\Desktop\421发布58兼容两种遥控\release\ota\HPW421_V1.3_XC6517_DF464F60_OTA.bin
".\Objects\Xinc_ble_sdk.axf" - 0 Error(s), 7 Warning(s).
<h2>Software Packages used:</h2>
@@ -168,7 +601,7 @@ Package Vendor: ARM
D:/Keil_v5/Packs/ARM/CMSIS/5.9.0/Device/ARM/ARMCM0/Include
<h2>Collection of Component Files used:</h2>
Build Time Elapsed: 00:00:22
Build Time Elapsed: 00:00:20
</pre>
</body>
</html>
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
@@ -75,3 +75,64 @@
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\dbg\api\dbg_swdiag.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\dbg\api\dbg_trc.h
.\objects\rf433.o: ..\app\src\rf433_decoder.h
.\objects\rf433.o: ..\app\src\usr_server.h
.\objects\rf433.o: ..\app\api\app_task.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\common\api\co_bt_defines.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\ble\hl\src\gap\gapm\gapm_int.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gapm.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gapm_msg.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\rwip\api\rwip_task.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gap.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\common\api\co_bt.h
.\objects\rf433.o: D:\Keil_v5\ARM\ARMCC\Bin\..\include\stddef.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\common\api\co_lmp.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\common\api\co_bt.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\common\api\co_hci.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\common\api\co_error.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\common\api\co_list.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\ke\api\ke_task.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\ke\api\ke_msg.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\arch.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\ll\gnuarm\ll.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\arch.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\reg_intc.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_intc.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\driver\reg\reg_access.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\common\api\co_utils.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\rwip\api\rwip.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\em\api\em_map.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\common\api\co_math.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_et.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\ble\ll\api\em_map_ble.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\common\api\co_llcp.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_ble_cs.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_ble_tx_desc.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_ble_rx_desc.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_ble_rx_cte_desc.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_ble_wpal.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_ble_ral.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\ble\hl\src\gatt\gatt_msg_int.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gatt.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gatt_msg.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\l2cap.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\l2cap_msg.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\common\api\co_buf.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\ke\api\ke_mem.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\ble\api\xc_gap_api.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gapc_msg.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\modules\nvds\api\nvds.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\ble\api\xc_gatt_server_api.h
.\objects\rf433.o: ..\..\..\..\..\component\ble\ip\ble\hl\src\gatt\gatt_db.h
@@ -7,11 +7,10 @@
.\objects\timeslice.o: ..\app\src\rf433.h
.\objects\timeslice.o: ..\app\src\key.h
.\objects\timeslice.o: ..\app\src\switch_s.h
.\objects\timeslice.o: ..\app\src\ota_flash_interface.h
.\objects\timeslice.o: ..\..\..\..\..\component\xc6xx_drivers\Drivers\xc_driver\xc_drv_fmc_spi.h
.\objects\timeslice.o: ..\..\..\..\..\component\xc6xx_drivers\Drivers\xc_driver\xc_drv_gpio.h
.\objects\timeslice.o: D:\Keil_v5\ARM\ARMCC\Bin\..\include\stdbool.h
.\objects\timeslice.o: ..\..\..\..\..\component\xc6xx_drivers\Drivers\CMSIS\Device\xc6xxx.h
.\objects\timeslice.o: ..\..\..\..\..\component\xc6xx_drivers\Drivers\CMSIS\Device\xc65xx.h
.\objects\timeslice.o: D:\Keil_v5\ARM\ARMCC\Bin\..\include\stdbool.h
.\objects\timeslice.o: ..\..\..\..\..\component\xc6xx_drivers\Drivers\CMSIS\core_cm0.h
.\objects\timeslice.o: ..\..\..\..\..\component\xc6xx_drivers\Drivers\CMSIS\core_cmInstr.h
.\objects\timeslice.o: ..\..\..\..\..\component\xc6xx_drivers\Drivers\CMSIS\core_cmFunc.h
@@ -64,6 +63,8 @@
.\objects\timeslice.o: ..\..\..\..\..\component\xc6xx_drivers\Drivers\xc_driver\xc_drv_adc.h
.\objects\timeslice.o: ..\..\..\..\..\component\xc6xx_drivers\Drivers\xc_driver\xc_drv_pwm.h
.\objects\timeslice.o: ..\..\..\..\..\component\xc6xx_drivers\Drivers\xc_driver\xc_drv_bor.h
.\objects\timeslice.o: ..\app\src\ota_flash_interface.h
.\objects\timeslice.o: ..\..\..\..\..\component\xc6xx_drivers\Drivers\xc_driver\xc_drv_fmc_spi.h
.\objects\timeslice.o: ..\app\src\ota_protocol.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\arch.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\modules\rwip\api\rwip_config.h
@@ -104,3 +105,36 @@
.\objects\timeslice.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_ble_wpal.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_ble_ral.h
.\objects\timeslice.o: ..\app\src\rf433_decoder.h
.\objects\timeslice.o: ..\app\src\usr_server.h
.\objects\timeslice.o: ..\app\api\app_task.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\modules\dbg\api\dbg.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\modules\dbg\api\dbg_swdiag.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\modules\dbg\api\dbg_trc.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\ip\ble\hl\src\gap\gapm\gapm_int.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gapm.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gapm_msg.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\modules\rwip\api\rwip_task.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gap.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\modules\common\api\co_list.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\modules\ke\api\ke_task.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\modules\ke\api\ke_msg.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\ip\ble\hl\src\gatt\gatt_msg_int.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gatt.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gatt_msg.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\l2cap.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\l2cap_msg.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\modules\common\api\co_buf.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\modules\ke\api\ke_mem.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\ip\ble\api\xc_gap_api.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gapc_msg.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\modules\nvds\api\nvds.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\ip\ble\api\xc_gatt_server_api.h
.\objects\timeslice.o: ..\..\..\..\..\component\ble\ip\ble\hl\src\gatt\gatt_db.h
@@ -60,3 +60,74 @@
.\objects\uart_1.o: ..\..\..\..\..\component\xc6xx_drivers\Drivers\xc_driver\xc_drv_pwm.h
.\objects\uart_1.o: ..\..\..\..\..\component\xc6xx_drivers\Drivers\xc_driver\xc_drv_bor.h
.\objects\uart_1.o: ..\app\src\rf433.h
.\objects\uart_1.o: ..\app\src\usr_server.h
.\objects\uart_1.o: ..\app\api\app_task.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\common\api\co_bt_defines.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\dbg\api\dbg.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\rwip\api\rwip_config.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\ll\api\rwble_config.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\rwip\api\rwip_config.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\hl\inc\rwble_hl_config.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\rwble_hl_error.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\hl\inc\rwprf_config.h
.\objects\uart_1.o: ..\app\api\rwapp_config.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\dbg\api\dbg_swdiag.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\dbg\api\dbg_trc.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\hl\src\gap\gapm\gapm_int.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gapm.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gapm_msg.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\rwip\api\rwip_task.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gap.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\common\api\co_bt.h
.\objects\uart_1.o: D:\Keil_v5\ARM\ARMCC\Bin\..\include\stddef.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\common\api\co_lmp.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\common\api\co_bt.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\common\api\co_hci.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\common\api\co_error.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\common\api\co_list.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\ke\api\ke_task.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\ke\api\ke_msg.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\arch.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\ll\gnuarm\ll.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\arch.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\reg_intc.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_intc.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\driver\reg\reg_access.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\common\api\co_utils.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\rwip\api\rwip.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\em\api\em_map.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\common\api\co_math.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_et.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\ll\api\em_map_ble.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\common\api\co_llcp.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_ble_cs.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_ble_tx_desc.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_ble_rx_desc.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_ble_rx_cte_desc.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_ble_wpal.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\build\ble-full\reg\fw\_reg_em_ble_ral.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\hl\src\gatt\gatt_msg_int.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gatt.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gatt_msg.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\l2cap.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\l2cap_msg.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\plf\refip\src\arch\compiler\gnuarm\compiler.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\common\api\co_buf.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\ke\api\ke_mem.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\api\xc_gap_api.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\hl\api\gapc_msg.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\modules\nvds\api\nvds.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\api\xc_gatt_server_api.h
.\objects\uart_1.o: ..\..\..\..\..\component\ble\ip\ble\hl\src\gatt\gatt_db.h
@@ -129,3 +129,4 @@
.\objects\usr_server.o: ..\..\..\..\..\component\ble\ip\ble\api\xc_gatt_server_api.h
.\objects\usr_server.o: ..\..\..\..\..\component\ble\ip\ble\hl\src\gatt\gatt_db.h
.\objects\usr_server.o: ..\app\src\uart_1.h
.\objects\usr_server.o: ..\app\src\rf433.h

Some files were not shown because too many files have changed in this diff Show More