【DigiKey好物畅享】ST NUCLEO-WBA65RI 蓝牙创建-3

app_ble.c

蓝牙相关代码,connIntervalFlag 作为蓝牙连接的状态,

/* USER CODE BEGIN Includes */
#include "app_bsp.h"
/* USER CODE END Includes */

/* USER CODE BEGIN PTD_1 */

uint8_t connIntervalFlag;
/* USER CODE END PTD_1 */

/* USER CODE BEGIN PFP */
//static void Adv_Cancel_Req(void *arg);
static void Adv_Cancel(void);

static void fill_advData(uint8_t *p_adv_data, uint8_t tab_size, const uint8_t*p_bd_addr);
/* USER CODE END PFP */
  /* USER CODE BEGIN APP_BLE_Init_1 */
  tBleStatus ret;
  /* USER CODE END APP_BLE_Init_1 */
/* USER CODE BEGIN APP_BLE_Init_4 */
    UTIL_SEQ_RegTask(1<<CFG_TASK_ADV_CANCEL_ID, UTIL_SEQ_RFU, Adv_Cancel);

    /* USER CODE END APP_BLE_Init_4 */
/* USER CODE BEGIN APP_BLE_Init_3 */
    ret = aci_hal_set_radio_activity_mask(0x0006);
    if (ret != BLE_STATUS_SUCCESS)
    {
      LOG_INFO_APP("  Fail   : aci_hal_set_radio_activity_mask command, result: 0x%2X\n", ret);
    }
    else
    {
      LOG_INFO_APP("  Success: aci_hal_set_radio_activity_mask command\n\r");
    }

    /* Start to Advertise to accept a connection */
    APP_BLE_Procedure_Gap_Peripheral(PROC_GAP_PERIPH_ADVERTISE_START_FAST);
    /* USER CODE END APP_BLE_Init_3 */
/* USER CODE BEGIN APP_BLE_Init_2 */
  bleAppContext.connIntervalFlag = 0;
  /* USER CODE END APP_BLE_Init_2 */
/* USER CODE BEGIN EVT_DISCONN_COMPLETE */
      APP_BLE_Procedure_Gap_Peripheral(PROC_GAP_PERIPH_ADVERTISE_START_FAST);
      /* USER CODE END EVT_DISCONN_COMPLETE */
/* USER CODE BEGIN CONN_PARAM_UPDATE */
      if (bleAppContext.connIntervalFlag != 0)
      {
        bleAppContext.connIntervalFlag = 0;
        paramA = CONN_INT_MS(50);
        paramB = CONN_INT_MS(50);
      }
      else
      {
    	BSP_LED_Off(LED_GREEN);
        bleAppContext.connIntervalFlag = 1;
        paramA = CONN_INT_MS(1000);
        paramB = CONN_INT_MS(1000);
      }
      /* USER CODE END CONN_PARAM_UPDATE */
/* USER CODE BEGIN Ble_Hci_Gap_Gatt_Init */
/* Add number of record for Device Info Characteristic */
  static const uint8_t p_additional_svc_record[1] = {0x03};

  ret = aci_hal_write_config_data(CONFIG_DATA_GAP_ADD_REC_NBR_OFFSET,
                                  CONFIG_DATA_GAP_ADD_REC_NBR_LEN,
                                  (uint8_t*) p_additional_svc_record);
  if (ret != BLE_STATUS_SUCCESS)
  {
    LOG_INFO_APP("  Fail   : aci_hal_write_config_data command - CONFIG_DATA_GAP_ADD_REC_NBR_OFFSET, result: 0x%02X\n", ret);
  }
  else
  {
    LOG_INFO_APP("  Success: aci_hal_write_config_data command - CONFIG_DATA_GAP_ADD_REC_NBR_OFFSET\n");
  }
  /* USER CODE END Ble_Hci_Gap_Gatt_Init */
/* USER CODE BEGIN Ble_Hci_Gap_Gatt_Init_1 */
  fill_advData(&a_AdvData[0], sizeof(a_AdvData), (uint8_t*) p_bd_addr);
  /* USER CODE END Ble_Hci_Gap_Gatt_Init_1 */