串口加RX事件
authordxy <1731678236qq.com>
Tue, 16 Sep 2025 06:09:25 +0000 (14:09 +0800)
committerdxy <1731678236qq.com>
Tue, 16 Sep 2025 06:09:25 +0000 (14:09 +0800)
2.code/1.sdk/apps/BK_app/BK_drive/bk_uart.c

index 3355751..aa42aab 100644 (file)
@@ -459,7 +459,7 @@ void bk_uart_init()
     struct uart_dma_config dma = {
         .rx_timeout_thresh = 500,
         .frame_size = 512,
-        .event_mask =  UART_EVENT_RX_TIMEOUT,
+        .event_mask =  UART_EVENT_RX_DATA|UART_EVENT_RX_TIMEOUT,
         .tx_wait_mutex = 0,
         .irq_priority = 6,
         .irq_callback = uart_irq_func,
@@ -1310,6 +1310,7 @@ int parse_uart_data(char *json_string)
                 if (cJSON_IsString(switch_bt_state) && (switch_bt_state->valuestring != NULL)) {
                     if (strcmp(switch_bt_state->valuestring, "1") == 0) {
                         get_bt_switch=1;
+                        ack_flag=1;
                         // if (is_bredr_close() == 1) {
                         //     printf("3 is_bredr_close: %d\n", is_bredr_close());
                         //     bt_init_bredr();
@@ -1320,7 +1321,7 @@ int parse_uart_data(char *json_string)
                     }else if (strcmp(switch_bt_state->valuestring, "0") == 0)
                     {
                         get_bt_switch=1;
-
+                        ack_flag=1;
                         // disconected_device();
                         
                         // if (!is_bredr_close()) {
@@ -1346,6 +1347,7 @@ int parse_uart_data(char *json_string)
                     printf("蓝牙广播状态: %s\n", switch_bt_state->valuestring);
                     if (strcmp(switch_bt_state->valuestring, "1") == 0) {
                         get_ble_switch=1;
+                        ack_flag=1;
                         switch_ble_state=1;
                         bk_app_send_smg(SWITCH_BLE_STATE,(char *)&switch_ble_state,1);
                         // set_adv_flag_fun(1) ;//开始蓝牙广播
@@ -1353,6 +1355,7 @@ int parse_uart_data(char *json_string)
                     }else if (strcmp(switch_bt_state->valuestring, "0") == 0)
                     {
                         get_ble_switch = 1;
+                        ack_flag=1;
                         switch_ble_state=0;
                         bk_app_send_smg(SWITCH_BLE_STATE,(char *)&switch_ble_state,1);
                         // set_adv_flag_fun(0); //关闭蓝牙广播
@@ -1361,7 +1364,7 @@ int parse_uart_data(char *json_string)
                 }
             }
         }
-        if(!strcmp(event->valuestring,"bt_scan")) 
+        if(!strcmp(event->valuestring,"bt_scan")) //蓝牙耳机扫描 需要回ack
         {
             // "event":"bt_scan",
             // "data":"0/1" 0开始扫描 1停止扫描
@@ -1385,7 +1388,7 @@ int parse_uart_data(char *json_string)
                 }
             }
         }
-        if(!strcmp(event->valuestring,"connect_bt")) {
+        if(!strcmp(event->valuestring,"connect_bt")) { //连接蓝牙耳机 需要回ack
             // json_data = \
             // {
             //     "event": "connect_bt",
@@ -1403,7 +1406,7 @@ int parse_uart_data(char *json_string)
                 ack_flag=1;
             }
         }
-        if(!strcmp(event->valuestring,"imei")) {
+        if(!strcmp(event->valuestring,"imei")) { //接收imei号
             // json_data = \
             // {
             //     "event": "connect_bt",
@@ -1413,12 +1416,13 @@ int parse_uart_data(char *json_string)
             if (cJSON_IsString(data) && (data->valuestring != NULL)) {
                 printf("imei: %s\n", data->valuestring);
                 get_cat1_imei_state=1;
+                ack_flag=1;
                 bk_app_send_smg(BT_GET_IMEI,data->valuestring,strlen(data->valuestring));
                 // set_adv_imei(data->valuestring);//设置广播imei号
                 
             }
         }
-        if(!strcmp(event->valuestring,"disconnect_bt")) {
+        if(!strcmp(event->valuestring,"disconnect_bt")) { //断开蓝牙耳机连接
             // json_data = \
             // {
             //     "event": "disconnect_bt",
@@ -1435,17 +1439,16 @@ int parse_uart_data(char *json_string)
             
         }
 
-        if(!strcmp(event->valuestring,"get_connect_bt_state")) {
-            printf("获取当前连接蓝牙耳机的状态");
+        if(!strcmp(event->valuestring,"get_connect_bt_state")) { //获取蓝牙耳机连接状态
+            printf("获取当前连接蓝牙耳机的状态 获取完之后");
             send_bt_connect_state();
         }
-        if(!strcmp(event->valuestring,"get_versions")) {
+        if(!strcmp(event->valuestring,"get_versions")) { //获取蓝牙版本号
             printf("获取当前版本");
             uart_send_versions();
         }
         if(!strcmp(event->valuestring,"clear_earphone_record")) {
             printf("清楚所有的蓝牙耳机连接记录");
-
             clear_earphone_record();
         }
         if(!strcmp(event->valuestring,"adjust_volume")) {
@@ -1459,8 +1462,9 @@ int parse_uart_data(char *json_string)
                 if(volume_tmp <= 0){
                     volume_tmp=1;
                 }
-                ack_flag=1;
+                
                 bk_app_send_smg(BT_ADJUST_VOLUME,(char*)&volume_tmp,1);//
+                ack_flag=1;
                 // app_audio_volume_set(volume_tmp);
                 
             }