WXK
2025-05-22 035ecb85c3513be2b6ab5c515db082cb7fee8f97
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