/** ******************************************************************************* * @file app_ble.c * @create 2023-08-01 * @author Panchip BLE GROUP * @note * Copyright (c) 2022 Shanghai Panchip Microelectronics Co.,Ltd. * ******************************************************************************* */ #include #include #include "pan_ble.h" #include "app.h" #include "app_log.h" #include "soc_api.h" static void app_ble_set_mac_addr(void) { /** set public address*/ uint8_t pub_mac[6]={8,2,3,4,5,6}; #if CONFIG_USER_CHIP_MAC_ADDR pan10x_mac_addr_get(pub_mac); #endif #if APP_USER_ROLL_MAC_ADDR pan10x_roll_mac_addr_get(pub_mac); #endif pan_misc_set_bd_addr(pub_mac); } /** * @brief: BLE Stack Enabled call-back. */ static void app_ble_enabled_cb(void) { #if CONFIG_BT_MAX_NUM_OF_PERIPHERAL /* Adv */ // app_ble_adv_start(); #endif #if CONFIG_BT_MAX_NUM_OF_CENTRAL /* Scan */ app_ble_scan_start(); #endif } /** * @brief: ble stack pre init call-back * !!!Note: 1. The Bluetooth MAC Address must be set in this callback. * 2. The BLE Services must be registered in this callback. * 3. The SDP initialization must be executed in this callback. */ TimerHandle_t xTimerUser; uint16_t timer; uint8_t shengji_flag; extern struct queue //½á¹¹ÌåÀàÐÍ { uint8_t totalnum;//»ùÕ¾×ÜÊý uint8_t flag_newanchor[anchor_max_num];//ÐÂÀÏ»ùÕ¾±íʾ uint16_t id[anchor_max_num]; /*ID*/ uint16_t time[anchor_max_num]; /*ʱ¼ä*/ uint16_t fail_num[anchor_max_num]; //uwb½ÓÊÜʧ°ÜµÄ´ÎÊý uint16_t rssi[anchor_max_num];//À¶ÑÀ²â³öµÄ¾àÀë uint8_t uwb_tongxun_flag[anchor_max_num];//ÓëuwbͨѶ³É¹¦Ê§°ÜµÄ±ê־λ uint16_t u16id[anchor_max_num]; /*u16ID*/ }blequeue; 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) {blequeue.totalnum=10;} memset(slave_send_buf,0,sizeof(slave_send_buf)); slave_send_buf[0]=0X55; slave_send_buf[1]=0XAA; 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)); } void vTimerCallback( TimerHandle_t xTimer ) { uint16_t aa,bb; timer++; // Spi_Zubao_Send(); if (shengji_flag==1) { shengji_time++; if(shengji_time>600) { NVIC_SystemReset(); } } for(aa=0;aa4) { for(bb=aa;bb