From 035ecb85c3513be2b6ab5c515db082cb7fee8f97 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期四, 22 五月 2025 18:11:06 +0800
Subject: [PATCH] 修改bug,io改为不拉

---
 01_SDK/nimble/samples/bluetooth/ble_central_periph_ota/src/app_ble.c |   62 ++++++++++++++++++++++--------
 1 files changed, 45 insertions(+), 17 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..369b728 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,23 +78,27 @@
     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++;
@@ -102,8 +107,23 @@
         NVIC_SystemReset();
         }
     }
+    for(aa=0;aa<blequeue.totalnum;aa++)
+    {
+    blequeue.time[aa]++;
+        if(blequeue.time[aa]>4)
+        {
+           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];
+            }
+            blequeue.totalnum--;
+        }
+    }
 }
 static TaskHandle_t xTaskToNotify = NULL;
+uint16_t test;
 static void gpio_p02_input_callback(HAL_GPIO_IntMode intMode)
 {
     BaseType_t xHigherPriorityTaskWoken = pdTRUE;
@@ -114,19 +134,21 @@
         {
             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;
+                test++;
                 
         }
 }
@@ -138,7 +160,7 @@
     /* Init GPIO P06 to digital input mode */
     HAL_GPIO_InitTypeDef GPIO_InitStruct = {
         .mode   = HAL_GPIO_MODE_INPUT_DIGITAL,
-        .pull   = HAL_GPIO_PULL_UP,
+        .pull   = HAL_GPIO_PULL_DISABLE,
     };
     HAL_GPIO_Init(P0_2, &GPIO_InitStruct);
 
@@ -204,6 +226,12 @@
         app_ble_adv_start();
         only_one=0;
     }
+    if(send_flag)
+    {
+    Spi_Zubao_Send();
+    send_flag=0;    
+//    HAL_GPIO_WritePin(P0_2,HAL_GPIO_LEVEL_HIGH);  
+    }
 
 }
 #define MYNEWT_VAL_APP_BLE_THREAD_STACK_SIZE        128

--
Gitblit v1.9.3