4 Commits

Author SHA1 Message Date
xushaoxiang 2aa2ee3d95 修复不带记忆的bug 2026-08-22 13:16:33 +08:00
xushaoxiang b140b47ceb 最新发布版本 2026-07-28 13:31:36 +08:00
xushaoxiang 440c4b622c 新增兼容两种墙壁开关 2026-07-22 11:37:38 +08:00
xushaoxiang 360697296c 修复椭圆遥控控制异常 2026-07-21 16:31:07 +08:00
161 changed files with 7356 additions and 6353 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
@@ -55,10 +55,9 @@ void read_user_data(void)
adress_ch1_index = r_data[22];
adress_ch2_index = r_data[23];
flash_ch1_state=0;
flash_ch1_state=r_data[24];
flash_ch2_state=r_data[25];
memset(adress_H_ch1, 0, sizeof(adress_H_ch1));
memset(adress_L_ch1, 0, sizeof(adress_L_ch1));
adress_ch1_index = 0;
}
@@ -42,8 +42,8 @@ uint8_t adress_ch2_index = 0; // 通道2地址索引(0-4)
uint8_t match_ch = 0; // 匹配到的通道(1=GPIO5,2=GPIO2)
#define MATCH_CH1 0 // HPW421 不使用通道1
#define MATCH_CH2 (1 << 1) // 通道2匹配标记
#define MATCH_CH1 (1 << 0) //GPIO5
#define MATCH_CH2 (1 << 1) // 通道2匹配标记
uint8_t flash_ch1_state=0;
@@ -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,429 +1,587 @@
#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_ch2_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_ch2_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_ch2_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)
{
S1_first_on_state=0;
/*
* ========================================================
* 上电时 GPIO1 已经按下
* ========================================================
*/
if(S1_first_on_state == 1)
{
S1_first_on_state = 0;
s1_state = DB_PRESS_DEBOUNCE;
s1_debounce_cnt = DEBOUNCE_MS;
}
s1_state=DB_PRESS_DEBOUNCE;
}
if(S2_first_on_state==1)
{
S2_first_on_state=0;
/*
* ========================================================
* S1 状态机
* ========================================================
*/
switch(s1_state)
{
case DB_IDLE:
/*
* 空闲状态低电平补检,防止漏中断。
*/
if(xc_gpio_read_pin(SWITCH_S1_PIN) == 0)
{
s1_state = DB_PRESS_DEBOUNCE;
s1_debounce_cnt = DEBOUNCE_MS;
}
break;
s2_state=DB_PRESS_DEBOUNCE;
}
case DB_PRESS_DEBOUNCE:
if(s1_debounce_cnt > 0)
{
s1_debounce_cnt--;
}
// 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;
// }
if(s1_debounce_cnt == 0)
{
if(xc_gpio_read_pin(SWITCH_S1_PIN) == 0)
{
s1_state = DB_PRESSED;
switch(s1_state)
{
case DB_IDLE: //空闲状态
break;
s1_press_cnt = 0;
s1_long_press_done = 0;
case DB_PRESS_DEBOUNCE: //按下防抖
if(s1_debounce_cnt>0) s1_debounce_cnt--;
if(s1_debounce_cnt==0)
{
//防抖时间到,采样当前电平是否是低电平
if(xc_gpio_read_pin(SWITCH_S1_PIN)==0)
{
s1_state = DB_PRESSED; //进入按下状态,不响应中断
if(trig1_wait == 0)
{
trig1_cnt = 1;
trig1_timeout = TRIGGER_TIMEOUT_MS;
trig1_wait = 1;
}
else
{
if(trig1_timeout>0)
{
trig1_cnt++;
}
/*
* 连续触发计数
*/
if(trig1_wait == 0)
{
trig1_cnt = 1;
trig1_timeout = TRIGGER_TIMEOUT_MS;
trig1_wait = 1;
}
else
{
if(trig1_timeout > 0)
{
trig1_cnt++;
}
else
{
/*
* 如果等待标志还在,但超时已经为 0,
* 说明旧状态异常,重新作为第一次点击。
*/
trig1_cnt = 1;
}
trig1_timeout = TRIGGER_TIMEOUT_MS;
//
}
}
else
{
// 杂波导致误触,回到空闲
s1_state = DB_IDLE;
}
}
break;
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; // 回到空闲
trig1_timeout = TRIGGER_TIMEOUT_MS;
s1_state = DB_IDLE;
switch1_RELEASE_flag=1;
if(s1_first_press_flag==1)
{
s1_first_press_flag=2;
}
/*
* ====================================================
* 关键新增修复
* ====================================================
*
* 如果前面已经判定:
* 快速拨动 5 次后,最后一次停留打开超过 200ms,
* 那么这次释放只是无效释放。
*
* 直接清理状态,不再进入后面的 5 次对码处理。
*/
if(s1_pair_invalid_flag == 1)
{
switch_s1_clear_action_state();
}
else
{
/*
* 释放后重新给连击窗口计时。
*/
trig1_timeout = TRIGGER_TIMEOUT_MS;
switch1_RELEASE_flag = 1;
if(s1_long_press_done == 0)
{
/*
* 200ms 内释放:
* 回弹点击。
*/
s1_return_click_flag = 1;
}
else
{
/*
* 普通不回弹开关释放。
*/
if(s1_first_press_flag == 1)
{
s1_first_press_flag = 2;
}
}
}
}
else
{
// 再等20ms
s1_debounce_cnt = DEBOUNCE_MS; // 30ms
s1_debounce_cnt = DEBOUNCE_MS;
}
}
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;
}
}
break;
case DB_PRESSED: //确认按下
// 等待引脚回高电平
if(xc_gpio_read_pin(SWITCH_S2_PIN) == 1)
{
s2_state = DB_RELEASE_DEBOUNCE;
s2_debounce_cnt = DEBOUNCE_MS; // 释放30ms防抖
}
default:
s1_state = DB_IDLE;
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
}
}
break;
}
// S1 超时处理
/*
* ========================================================
* S1 连击超时处理
* ========================================================
*/
if(trig1_timeout > 0)
{
trig1_timeout--;
}
else if(trig1_timeout==0 && switch1_RELEASE_flag==1 )
{
switch1_RELEASE_flag=2;
}
// 600ms倒计时结束,且有计数
if(trig1_timeout == 0 && trig1_cnt == 1 && trig1_wait == 1 && s1_state == DB_PRESSED) //确定按下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();
}
else if(trig1_timeout == 0 && (trig1_cnt > 1 && trig1_cnt < TRIGGER_CONTINUE_CNT))
{
// printf("乱按 trig1_cnt %d\r\n",trig1_cnt);
trig1_cnt = 0;
trig1_wait = 0;
}
else if(trig1_timeout == 0 && 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)
}
else if(trig1_timeout == 0 && switch1_RELEASE_flag == 1)
{
trig2_timeout--;
}
else if(trig2_timeout==0 && switch2_RELEASE_flag==1 )
{
switch2_RELEASE_flag=2;
}
switch1_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)
{
rf433_sw_flag = 2;
trig2_cnt = 0;
trig2_wait = 0;
}
else
{
trig2_cnt = 0;
trig2_wait = 0;
}
}
else if(trig2_timeout == 0 && switch2_RELEASE_flag==2 && s2_state == DB_IDLE && s2_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();
}
/*
* ========================================================
* S1 回弹开关处理
* ========================================================
*/
if(trig1_timeout == 0 &&
switch1_RELEASE_flag == 2 &&
s1_state == DB_IDLE &&
s1_return_click_flag == 1)
{
if(trig1_cnt == 1 && trig1_wait == 1)
{
/*
* 单击:
* GPIO5 翻转。
*/
switch_s1_clear_action_state();
switch_s1_output_toggle();
}
else if(trig1_cnt > 1 && trig1_cnt < TRIGGER_CONTINUE_CNT)
{
/*
* 2~4 次:
* 不动作,但必须彻底清状态。
*/
switch_s1_clear_action_state();
}
else if(trig1_cnt >= TRIGGER_CONTINUE_CNT)
{
/*
* 5 次及以上:
* 进入对码。
*
* 这里增加 s1_pair_invalid_flag 判断。
* 正常快速拨动 5 次并最终关闭:进入对码。
* 拨动 5 次后停留打开一段时间再关闭:不进入对码。
*/
if(s1_pair_invalid_flag == 0)
{
rf433_sw_flag = 2;
}
switch_s1_clear_action_state();
}
else
{
/*
* 异常兜底清理。
*/
switch_s1_clear_action_state();
}
}
/*
* ========================================================
* 普通不回弹开关释放后关闭 GPIO5
* ========================================================
*/
else if(trig1_timeout == 0 &&
switch1_RELEASE_flag == 2 &&
s1_state == DB_IDLE &&
s1_first_press_flag == 2)
{
/*
* 普通不回弹开关释放后关闭 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的中断
{
if(s1_state == DB_IDLE && S1_first_on_state==0) // 只有空闲才响应
/*
* GPIO1 下降沿中断
*/
if((intr_sta & ((uint64_t)1 << SWITCH_S1_PIN)) != 0)
{
if(s1_state == DB_IDLE && S1_first_on_state == 0)
{
s1_state = DB_PRESS_DEBOUNCE;
s1_debounce_cnt = DEBOUNCE_MS; // 40ms防抖
s1_debounce_cnt = DEBOUNCE_MS;
}
}
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;
}
}
}
}
@@ -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 超时
#define TRIGGER_TIMEOUT_MS 20
// 连续触发次数
#define TRIGGER_CONTINUE_CNT 5
// trigger_check_process() 实际调用周期,单位 ms
#define SWITCH_SCAN_PERIOD_MS 10
#define SWITCH_S1_PIN GPIO_1
#define SWITCH_S2_PIN GPIO_19
// 连击超时时间:20 * 10ms = 200ms
#define TRIGGER_TIMEOUT_MS 20
// 连续触发次数,达到 5 次进入对码
#define TRIGGER_CONTINUE_CNT 5
// 回弹开关判断时间: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,47 +21,50 @@ 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'
Rebuild target 'ble-sdk-xip'
assembling startup_xinc.s...
compiling system_xinc.c...
compiling aes.c...
compiling sleep.c...
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...
compiling aes.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 nvds.c...
compiling app_task.c...
compiling xc_drv_adc.c...
compiling nvds.c...
compiling xc_drv_aotimer.c...
compiling xc_gap_api.c...
compiling xc_gatt_client_api.c...
compiling xc_drv_bor.c...
compiling xc_gatt_client_api.c...
compiling xc_gap_api.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_dma.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_spi_dma.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...
@@ -69,16 +72,16 @@ compiling xc_drv_uart_dma.c...
compiling xc_drv_uart.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 fmc_spi_1.c...
compiling led.c...
compiling uart_1.c...
compiling timeslice.c...
compiling switch_s.c...
compiling key.c...
compiling timeslice.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 led.c...
compiling ota_flash_interface.c...
compiling rf433_decoder.c...
compiling ota_server.c...
@@ -90,35 +93,35 @@ compiling ota_protocol.c...
..\app\src\ota_protocol.c: 2 warnings, 0 errors
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=28440 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: 30352 bytes.
all_size=30352
size:30352 PageCNT119
dual_xip
length:30984
size:30984
length:30728
size:30728
Addr:12000
Size:0x7800
Size:0x7700
BAddr:0x12000
Acheck:0x8ed9ea0
Acheck:0xf3ee5b20
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: 30352 bytes.
all_size=30352
size:30352 PageCNT119
dual_xip
length:30984
size:30984
length:30728
size:30728
Addr:12000
Size:0x7800
Size:0x7700
BAddr:0x1e000
Acheck:0x8ed9ea0
Acheck:0xf3ee5b20
SoftVer:0x10
RomVer:0x20
LoadAddr:0x11012000
@@ -152,10 +155,440 @@ is_db=1
is_th=0
需要填充0个sector
all_size:1a000
size: 30568
size: 30352
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:a31fcaa0
crc:31:a9410300
crc:32:2d51c2c0
crc:33:19efa7a0
crc:34:3e831760
crc:35:ab1dd900
crc:36:efc872c0
crc:37:9d51d1c0
crc:38:613f6ce0
crc:39:7b8943e0
crc:40:da673840
crc:41:9cbbb7c0
crc:42:11d72520
crc:43:39067680
crc:44:7226f460
crc:45:11ff9980
crc:46:7808a320
crc:47:6c1cdcc0
crc:48:3abe080
crc:49:ac944ac0
crc:50:e633c580
crc:51:7f39eb40
crc:52:bcb099a0
crc:53:20b1e2e0
crc:54:5eb02d80
crc:55:d9860080
crc:56:b2091060
crc:57:d85b9a60
crc:58:58f5be0
crc:59:1ab21ee0
crc:60:c7dca740
crc:61:3f36200
crc:62:aeb8e520
crc:63:64e9a960
crc:64:f2572a80
crc:65:5ede0b20
crc:66:45848640
crc:67:e3be7940
crc:68:d1e0c7c0
crc:69:1e221860
crc:70:a20c58a0
crc:71:1d888ac0
crc:72:2a155100
crc:73:dde84280
crc:74:4113c200
crc:75:a089b460
crc:76:21725a80
crc:77:4bea96e0
crc:78:ad5865e0
crc:79:9f7979e0
crc:80:d0651de0
crc:81:a8b61260
crc:82:7a481420
crc:83:f40765c0
crc:84:196081a0
crc:85:a0ee1700
crc:86:b97d91c0
crc:87:74774de0
crc:88:6380bc40
crc:89:56aff140
crc:90:37c8e540
crc:91:f63e2b00
crc:92:8e9a79e0
crc:93:dcbfce60
crc:94:851e3360
crc:95:e8978b20
crc:96:f78e9020
crc:97:403a7600
crc:98:ab8c33a0
crc:99:47376780
crc:100:f0eaeb80
crc:101:3b298400
crc:102:aaf73bc0
crc:103:d09b0e40
crc:104:6d5a7600
crc:105:4d2cd360
crc:106:bc25f520
crc:107:d20d62c0
crc:108:a5297900
crc:109:6363d940
crc:110:e1d9dd20
crc:111:2c765c60
crc:112:95b21580
crc:113:2fb09080
crc:114:3e2ac80
crc:115:4adab660
crc:116:5a3cbb60
crc:117:26b4c7a0
crc:118:2aff6f80
crc:119:e2664520
crc:120:ca89b920
crc:121:5261a20
crc:122:bb74f2e0
crc:123:a32bdba0
crc:124:ee8b8f20
crc:125:89f29d60
crc:126:53955600
crc:127:d762b000
crc:128:527c1aa0
crc:129:c602d00
crc:130:695af8c0
crc:131:c338fa20
crc:132:5bfeec20
crc:133:e56311a0
crc:134:881292a0
crc:135:2a854aa0
crc:136:eeac4a00
crc:137:1f53bfa0
crc:138:e7fed2c0
crc:139:2d544160
crc:140:b40e9800
crc:141:3dfe49a0
crc:142:55298800
crc:143:d6b70c00
crc:144:e10da4c0
crc:145:8c33a4e0
crc:146:bda2cde0
crc:147:64e7ba60
crc:148:ba9b2660
crc:149:e63ee5c0
crc:150:b31d0380
crc:151:6b6d85e0
crc:152:487c2080
crc:153:975ebb00
crc:154:8c72e4a0
crc:155:a1c06f60
crc:156:13135200
crc:157:59b9c220
crc:158:157ab660
crc:159:630a8f60
crc:160:f2308dc0
crc:161:45249500
crc:162:b8398d80
crc:163:a6563c60
crc:164:18785220
crc:165:ec58ca00
crc:166:67635460
crc:167:8ec282e0
crc:168:ecbebf40
crc:169:805a8bc0
crc:170:728a35e0
crc:171:b6bdb620
crc:172:9d8c64c0
crc:173:5878a0e0
crc:174:fcdddca0
crc:175:74980720
crc:176:8d3fc620
crc:177:2ce3fbc0
crc:178:a2aa7bc0
crc:179:6cd38d60
crc:180:6dd7d600
crc:181:47f125a0
crc:182:65a85fc0
crc:183:35d19800
crc:184:960db1a0
crc:185:d606e800
crc:186:cf7bf980
crc:187:79e646a0
crc:188:860b83c0
crc:189:bb475ae0
crc:190:e8970d60
crc:191:6e0c95e0
crc:192:65042400
crc:193:31fb660
crc:194:81da6cc0
crc:195:f4ad0ac0
crc:196:df739100
crc:197:615c1760
crc:198:bae19140
crc:199:e0073b00
crc:200:db9e1920
crc:201:76729aa0
crc:202:c076fc60
crc:203:d2a77560
crc:204:98fe9f00
crc:205:a438c720
crc:206:3fbdde80
crc:207:bf39ab80
crc:208:41ba7280
crc:209:e58c580
crc:210:939551e0
crc:211:5d193b80
crc:212:3dc7bfc0
crc:213:eeef5980
crc:214:39e18340
crc:215:56a4f920
crc:216:1fc14c60
crc:217:4deda880
crc:218:f9b18220
crc:219:596f0b20
crc:220:be6f0de0
crc:221:1ec7bc0
crc:222:8c7c5880
crc:223:e7aa8de0
crc:224:3396baa0
crc:225:c295ef40
crc:226:fd9a4300
crc:227:558621c0
crc:228:9a187620
crc:229:43deb0c0
crc:230:9ddab820
crc:231:47607e0
crc:232:2e8e6e00
crc:233:8a9bce80
crc:234:6fadeee0
crc:235:65200ca0
crc:236:1a6396e0
crc:237:6396bec0
crc:238:a2c060
crc:239:4476a3a0
crc:240:87a0f180
crc:241:1b4b0c0
crc:242:454aa6a0
crc:243:a9aaf6c0
crc:244:1e111260
crc:245:9dc1efc0
crc:246:55e2ff40
crc:247:b5e546e0
crc:248:65d97cc0
crc:249:33667c20
crc:250:c33610c0
crc:251:c830260
crc:252:419e06a0
crc:253:32d618e0
crc:254:452724a0
crc:255:6144fb60
crc:256:82129760
crc:257:624ca00
crc:258:35c52380
crc:259:91b1c9e0
crc:260:c22ffb00
crc:261:6c8b2380
crc:262:83b17520
crc:263:ad685700
crc:264:3b7f01e0
crc:265:ddae2920
crc:266:56d2f480
crc:267:52561140
crc:268:cb0206e0
crc:269:511bcc40
crc:270:f22f2040
crc:271:f8415980
crc:272:87b62440
crc:273:cf5feda0
crc:274:44f10300
crc:275:9ab46c00
crc:276:26339cc0
crc:277:6a94d6e0
crc:278:cc4774e0
crc:279:7d9da980
crc:280:bba52380
crc:281:dfd99e20
crc:282:a18a3be0
crc:283:25cc7840
crc:284:52875fe0
crc:285:5ca6b580
crc:286:f5b2dbc0
crc:287:2a512520
crc:288:6d9557a0
crc:289:31d6ab00
crc:290:45d1bdc0
crc:291:931afe0
crc:292:4956f80
crc:293:17557a60
crc:294:46a0db20
crc:295:134ce480
crc:296:ae6ac380
crc:297:31cfd300
crc:298:539cb280
crc:299:9b1547e0
crc:300:6c082d00
crc:301:eab2eba0
crc:302:b44d27c0
crc:303:69f1cac0
crc:304:7e816160
crc:305:9cd3b2e0
crc:306:a1631f40
crc:307:6c133be0
crc:308:2692fb40
crc:309:ae27c8c0
crc:310:d6e17760
crc:311:74603e00
crc:312:89a43720
crc:313:209a9640
crc:314:5a50e320
crc:315:b8a38b00
crc:316:59df3b20
crc:317:29976080
crc:318:a13b40
crc:319:e3f67840
crc:320:6432c580
crc:321:ce493240
crc:322:95cc1d60
crc:323:63376c60
crc:324:b6423300
crc:325:4a8a9e00
crc:326:c5534cc0
crc:327:f6ec3a60
crc:328:8caea3c0
crc:329:f08f320
crc:330:e182be40
crc:331:ec69dc80
crc:332:7e6b1920
crc:333:3df7d140
crc:334:86a4e4c0
crc:335:dd6ece00
crc:336:4f48d400
crc:337:ba3330e0
crc:338:a4a77c60
crc:339:d09c1940
crc:340:df604a40
crc:341:9cf03c60
crc:342:53734700
crc:343:16918640
crc:344:cecfd140
crc:345:58b8cea0
crc:346:f5734e0
crc:347:46297f00
crc:348:d2b23500
crc:349:ce11b700
crc:350:85fa24c0
crc:351:cf4042c0
crc:352:16714d60
crc:353:78ba1c80
crc:354:4ff1efc0
crc:355:8c64ffa0
crc:356:15d592c0
crc:357:152132a0
crc:358:ccc7a840
crc:359:b70ab0e0
crc:360:5858b5e0
crc:361:7b728e00
crc:362:dfd8d360
crc:363:71f68f40
crc:364:63aff720
crc:365:dcb28340
crc:366:b6b35380
crc:367:3034b2c0
crc:368:4f036760
crc:369:e60afb20
crc:370:dd6253e0
crc:371:2293cae0
crc:372:1057bc60
crc:373:4a818f80
crc:374:36cc540
crc:375:a0def0e0
crc:376:347c00a0
crc:377:33e23540
crc:378:96a91740
crc:379:e16722c0
crc:380:a7d6f6c0
crc:381:909a3480
crc:382:5dc28220
crc:383:1af0cb20
crc:384:41663ae0
crc:385:abb4f100
crc:386:ae9c1d20
crc:387:17759380
crc:388:321b400
crc:389:dd503a20
crc:390:5e7758a0
crc:391:d9202660
crc:392:e1568a20
crc:393:efef0a80
crc:394:dc8dd520
crc:395:b4f46c80
crc:396:134e6980
crc:397:aae69380
crc:398:4b9ff420
crc:399:bf8ead20
crc:400:36632180
crc:401:be5b4c20
crc:402:3faa5c60
crc:403:b91f3f80
crc:404:934427c0
crc:405:d0475620
crc:406:f18f1dc0
crc:407:966fdc20
crc:408:94a66060
crc:409:9606e140
crc:410:aaa47720
crc:411:436288c0
crc:412:86cddd40
crc:413:739a4e0
crc:414:e1040560
crc:415:cb96ec20
PageCNT:416remain:256file_sumcheck:cb96ec20 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_CB96EC20_1000000.bin
Online BIN: C:\Users\QJM\Desktop\421发布58兼容两种遥控\release\online\HPW421_V1.3_XC6517_CB96EC20.bin
OTA BIN: C:\Users\QJM\Desktop\421发布58兼容两种遥控\release\ota\HPW421_V1.3_XC6517_CB96EC20_OTA.bin
".\Objects\Xinc_ble_sdk.axf" - 0 Error(s), 7 Warning(s).
<h2>Software Packages used:</h2>
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