测试蓝牙连接,用的是示例basic_ble;在main_freertos.c添加的代码,如下:
static void DataTask(void *pv)
{
uint8_t cnt = 0;
char dataBuffer[64];
// 再等待一段时间确保 linkDB 初始化
vTaskDelay(pdMS_TO_TICKS(2000));
for (;;)
{
vTaskDelay(pdMS_TO_TICKS(1000));
if (BLE_IS_CONNECTED())
{
txBuf[0] = cnt++;
SimpleGattProfile_setParameter(SIMPLEGATTPROFILE_CHAR3, 1, txBuf);
//SimpleGattProfile_setParameter(SIMPLEGATTPROFILE_CHAR4, 1,txBuf);
}
else
{
printf("No BLE connection - skip notify\r\n");
}
}
}
void SimpleData_start(void)
{
printf("BLUE-SimpleData_start\r\n");
xTaskCreate(DataTask, "DataTask", 1024, NULL, 0, NULL);
}很奇怪的是手机端蓝牙连接后,打开SIMPLEGATTPROFILE_CHAR4的数据接收通知,只能接收一次数据,每次关闭开启数据接收通知才能再次接收到一次数据