diff --git a/app/drivers/sertrf/sertrf.c b/app/drivers/sertrf/sertrf.c index 523c304..5b72482 100644 --- a/app/drivers/sertrf/sertrf.c +++ b/app/drivers/sertrf/sertrf.c @@ -42,6 +42,9 @@ void sertrf_init(void) //初始化环形buff rb_init(&sertrf.data_handle_buffer, DATA_HANDLE_BUFFER_SIZE, sizeof(uint8_t)); + // 判断飞控是否进入 飞控固件强刷模式 + sertrf.force_update = key_get_status(); + //线程启动 sertrf_start(); @@ -102,7 +105,7 @@ void embedded_thread(void* arg) { uint8_t data[embedded_size ]; // data[embedded_size] = '\0'; - if(!sertrf.stmisp_device.flag) + if(!sertrf.stmisp_device.flag && !sertrf.force_update) embedded_device_read(&sertrf.device, data, embedded_size,0); Protocol_buf_decode(data, embedded_size); @@ -134,7 +137,7 @@ void pc_thread(void* arg) sertrf.device.ble_one_connect_flag = 0; continue; } - if(!sertrf.stmisp_device.flag) + if(!sertrf.stmisp_device.flag && !sertrf.force_update) embedded_device_write(&sertrf.device, data, pc_size); } // printf_chill_time(10,1000); diff --git a/app/drivers/sertrf/sertrf.h b/app/drivers/sertrf/sertrf.h index c88b6dc..4977467 100644 --- a/app/drivers/sertrf/sertrf.h +++ b/app/drivers/sertrf/sertrf.h @@ -77,6 +77,8 @@ typedef struct // 记录错误信息 protocol_status_e fc_protocol_status; //飞控连接端的协议状态 + // 判断是否使用强刷固件 + uint8_t force_update; }sertrf_t; typedef struct __attribute__((packed))