simpleBLECentral传送数据后立即接收的问题
请问在simpleBLECentral中,想连上后就传送数据与接收数据,所以我在GAP_LINK_PARAM_UPDATE_EVENT:下写先发送数据再接收数据
这样反而只有出现Write sent:的数据,却没有出现Read rsp:的数据,如果把发送这一段批注掉,却可以出现Read rsp:的数据
1、请问当写完数据之后,是不能直接取数据是吗?
2、发现写的DelayMS(1000);都没作用,LCD_WRITE_STRING( "write", HAL_LCD_LINE_5 );与LCD_WRITE_STRING( "read", HAL_LCD_LINE_6 );是同时出现
case GAP_LINK_PARAM_UPDATE_EVENT:
{
LCD_WRITE_STRING( "Param Update", HAL_LCD_LINE_1 );
uint8 TX_status;
uint8 RX_status;
if ( simpleBLEState == BLE_STATE_CONNECTED &&
simpleBLECharHdl != 0 &&
simpleBLEProcedureInProgress == FALSE )
{
// Do a write
attWriteReq_t TX;
TX.handle = simpleBLECharHdl;
TX.len = 1;
TX.value[0] = simpleBLECharVal;
TX.sig = 0;
TX.cmd = 0;
TX_status = GATT_WriteCharValue( simpleBLEConnHandle, &TX, simpleBLETaskId );
LCD_WRITE_STRING( "write", HAL_LCD_LINE_5 );
DelayMS(1000);
// Do a read
attReadReq_t RX;
RX.handle = simpleBLECharHdl;
RX_status = GATT_ReadCharValue( simpleBLEConnHandle, &RX, simpleBLETaskId );
LCD_WRITE_STRING( "read", HAL_LCD_LINE_6 );
}
}
break;
Sco,
不能这样操作。任何两个操作之间必须至少得到HCI层的response之后才能继续下一个操作。
另外你这里直接加delay的话也是不行的,系统实际上是单线程,这样就直接把MCU挂起了,应该会导致连接断开。