This commit is contained in:
lmx
2025-12-18 11:06:31 +08:00
parent 01f442d636
commit 5757f3fb12
12 changed files with 109 additions and 1642 deletions

View File

@ -38,6 +38,9 @@ static void rc_ble_state_set_disconnected(void);
//进程名称
static char control_key_task_name[] = "control_key";
//进程运行中标志
static u8 key_detect_sign = 0; //为1表示正在运行
// ==================================================================================================================================================================
// 全局变量
// ==================================================================================================================================================================
@ -242,8 +245,8 @@ void control_key_init(void){
* @param key2_state 按键2值
*/
void control_key_get_value(u16* Xout_adc, u16* Yout_adc, u8* key1_state, u8* key2_state){
*Xout_adc = (u16)adc_get_value(AD_CH_PG5);
*Yout_adc = (u16)adc_get_value(AD_CH_PG7);
*Xout_adc = (u16)adc_get_value(AD_CH_PG5) * 65;
*Yout_adc = (u16)adc_get_value(AD_CH_PG7) * 65;
*key1_state = gpio_read(IO_PORTG_06);
rc_log("adc_get_value: Xout = %d, Yout = %d, key1_state = %d, key2_state = %d\n", *Xout_adc , *Yout_adc, *key1_state, 1);
@ -258,11 +261,11 @@ void contol_key_task(void){
static u16 Xout_adc = 0;
static u16 Yout_adc = 0;
static u8 key1_state = 1;
u8 ble_data_buff[12] = {0xBE, 0xBB, 0x0A, 0x01, //0-3
u8 ble_data_buff[12] = {0xBE, 0xBB, 0x09, 0x01, //0-3
0x00, 0x00, 0x00, 0x00, //4-7 遥感值:上下、左右
0x00, 0x00, //8、9 两个按键
0x00, //10 电量百分比
0x0C}; //11 校验和
0x00}; //11 校验和
control_key_init(); //遥感按键初始化
@ -281,12 +284,35 @@ void contol_key_task(void){
ble_data_buff[10] = get_vbat_percent();
ble_data_buff[11] = 0;
for(int i = 0 ;i < 11; i++){
ble_data_buff[11] += ble_data_buff[i];
}
g_send_data_to_ble_server(ble_data_buff, sizeof(ble_data_buff));
os_time_dly(5);
os_time_dly(5); //10ms为单位
}
}
/**
* @brief 和主板ble连接上后会被调用
*
*/
void create_key_detect_thread(void){
key_detect_sign = 1;
os_task_create(contol_key_task, NULL, 1, 2048, 128, control_key_task_name);
}
/**
* @brief 和主板ble断连后会被调用
*
*/
void destroy_key_detect_thread(void){
if(key_detect_sign == 1){
key_detect_sign = 0;
os_task_del(control_key_task_name);
}
}
// ==================================================================================================================================================================
// 辅助函数
@ -341,19 +367,19 @@ void rc_app_main_init(void)
{
rc_log("Initializing Remote Control App...\n");
// 1. 初始化全局上下文
// 初始化全局上下文
memset(&g_rc_context, 0, sizeof(RC_Context_t));
g_rc_context.state = RC_STATE_DISCONNECTED; // 初始状态为未连接
g_rc_context.team = TEAM_NO;
FM176XX_HardInit();
// 2. 检查并启动RFID处理定时器
// 检查并启动RFID处理定时器
if (g_rfid_timer_id == 0) {
// g_rfid_timer_id = sys_timer_add(NULL, rc_rfid_callback_handler, RC_RFID_CALLBACK_INTERVAL_MS);
rc_log("RFID handler timer started (ID: %d).\n", g_rfid_timer_id);
}
// 3. 检查并启动BLE处理定时器
// 检查并启动BLE处理定时器
if (g_ble_timer_id == 0) {
// g_ble_timer_id = sys_timer_add(NULL, rc_ble_callback_handler, RC_BLE_CALLBACK_INTERVAL_MS);
rc_log("BLE handler timer started (ID: %d).\n", g_ble_timer_id);
@ -381,8 +407,9 @@ void test_task(void){
}
void test_func_main(void){
#if TEST_FUNCTION == 1
// os_task_create(test_task, NULL, 1, 1024, 128, "rfid_test");
os_task_create(contol_key_task, NULL, 1, 2048, 128, control_key_task_name);
// os_task_create(contol_key_task, NULL, 1, 2048, 128, control_key_task_name);
#endif
}