From ae079c1fc5d990ba55714d4b3a51b19f96edaec4 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期四, 24 四月 2025 16:01:43 +0800
Subject: [PATCH] 改为中断来低电平触发发送当前扫描数据,3s内扫描不到的会退出,串口来55 AA 75 70 64 61 74 65,进入升级模式

---
 01_SDK/nimble/samples/bluetooth/ble_central_periph_ota/src/app_ble.c |   56 ++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 40 insertions(+), 16 deletions(-)

diff --git a/01_SDK/nimble/samples/bluetooth/ble_central_periph_ota/src/app_ble.c b/01_SDK/nimble/samples/bluetooth/ble_central_periph_ota/src/app_ble.c
index 9e58682..e388883 100644
--- a/01_SDK/nimble/samples/bluetooth/ble_central_periph_ota/src/app_ble.c
+++ b/01_SDK/nimble/samples/bluetooth/ble_central_periph_ota/src/app_ble.c
@@ -70,6 +70,7 @@
 uint8_t slave_send_buf[100];
 uint16_t shengji_time;
 uint8_t only_one;
+uint8_t send_flag;
 void Spi_Zubao_Send(void)
 {   
     if(blequeue.totalnum>10)
@@ -77,29 +78,46 @@
     memset(slave_send_buf,0,sizeof(slave_send_buf));
     slave_send_buf[0]=0X55;
     slave_send_buf[1]=0XAA;
-    slave_send_buf[2]=blequeue.totalnum*4+2;
-    slave_send_buf[3]=blequeue.totalnum;
-    memcpy(&slave_send_buf[4],blequeue.id,2*blequeue.totalnum);
-    memcpy(&slave_send_buf[4+2*blequeue.totalnum],blequeue.rssi,2*blequeue.totalnum);
-    slave_send_buf[4+4*blequeue.totalnum]=0x66;
-    slave_send_buf[5+4*blequeue.totalnum]=0xBB;
-    HAL_UART_SendData(&UART0_OBJ, slave_send_buf,blequeue.totalnum*4+6,1000);
-    blequeue.totalnum=0;
+    slave_send_buf[2]=0X41;
+    
+    slave_send_buf[3]=blequeue.totalnum*4+2;
+    slave_send_buf[4]=blequeue.totalnum;
+    memcpy(&slave_send_buf[5],blequeue.id,2*blequeue.totalnum);
+    memcpy(&slave_send_buf[5+2*blequeue.totalnum],blequeue.rssi,2*blequeue.totalnum);
+    slave_send_buf[5+4*blequeue.totalnum]=0x66;
+    slave_send_buf[6+4*blequeue.totalnum]=0xBB;
+//    HAL_UART_SendData(&UART0_OBJ, slave_send_buf,blequeue.totalnum*4+7,1000);
+    HAL_UART_SendData_DMA(&UART0_OBJ, slave_send_buf,blequeue.totalnum*4+7);
+//    blequeue.totalnum=0;
 
-    memset(blequeue.id,0,sizeof(blequeue.id));
-    memset(blequeue.u16id,0,sizeof(blequeue.u16id));
-    memset(blequeue.rssi,0,sizeof(blequeue.rssi));
+//    memset(blequeue.id,0,sizeof(blequeue.id));
+//    memset(blequeue.u16id,0,sizeof(blequeue.u16id));
+//    memset(blequeue.rssi,0,sizeof(blequeue.rssi));
 }
 void vTimerCallback( TimerHandle_t xTimer )
 {	
+    uint16_t aa,bb;
 timer++;
-    Spi_Zubao_Send();
+//    Spi_Zubao_Send();
     if (shengji_flag==1) 
     {
     shengji_time++;
         if(shengji_time>600)
         {
         NVIC_SystemReset();
+        }
+    }
+    for(aa=0;aa<blequeue.totalnum;aa++)
+    {
+    blequeue.time[aa]++;
+        if(blequeue.time[aa]>3)
+        {
+           for(bb=aa;bb<blequeue.totalnum;bb++)
+            {
+                blequeue.id[bb]=blequeue.id[bb+1];
+                blequeue.rssi[bb]=blequeue.rssi[bb+1];
+                blequeue.time[bb]=blequeue.time[bb+1];
+            }
         }
     }
 }
@@ -114,19 +132,20 @@
         {
             if (HAL_GPIO_ReadPin(P0_2) == HAL_GPIO_LEVEL_LOW) 
                 {
-                APP_LOG_INFO("==== HAL_GPIO_LEVEL_LOW ,进入升级模式====\n");
+//                APP_LOG_INFO("==== HAL_GPIO_LEVEL_LOW ,进入升级模式====\n");
                 } 
                 else 
                 {
-                APP_LOG_INFO("==== HAL_GPIO_LEVEL_HIGH ,进入升级模式====\n");
+//                APP_LOG_INFO("==== HAL_GPIO_LEVEL_HIGH ,进入升级模式====\n");
                 }
-                shengji_flag=1;
-                only_one=1;
+//                shengji_flag=1;
+//                only_one=1;
                 #if CONFIG_BT_MAX_NUM_OF_PERIPHERAL
                 	/* Adv */
 //                	app_ble_adv_start();
 //                shengji_start();
                 #endif
+                send_flag=1;
                 
         }
 }
@@ -204,6 +223,11 @@
         app_ble_adv_start();
         only_one=0;
     }
+    if(send_flag)
+    {
+    Spi_Zubao_Send();
+    send_flag=0;    
+    }
 
 }
 #define MYNEWT_VAL_APP_BLE_THREAD_STACK_SIZE        128

--
Gitblit v1.9.3