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 |   42 ++++++++++++++++++++++++++++++++----------
 1 files changed, 32 insertions(+), 10 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 6d6c2a2..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)
@@ -85,23 +86,38 @@
     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);
-    blequeue.totalnum=0;
+//    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];
+            }
         }
     }
 }
@@ -116,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;
                 
         }
 }
@@ -206,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