如遇NRF_ERROR_NO_MEM或NRF_ERROR_RESOURCES
则需等待BLE_GATTS_EVT_HVN_TX_COMPLETE事件完成,
SDK14.2参考中控瑞迪优-主从切换项目,在BLE_GATTS_EVT_HVN_TX_COMPLETE置一标志位tx_complete_flag = 0; 在main中
do
{
err_code = ble_nus_c_string_send(&m_ble_nus_c, data, len);
if(err_code == NRF_ERROR_RESOURCES)
{
tx_complete_flag = 1;
}
else if ( (err_code != NRF_ERROR_INVALID_STATE) && (err_code != NRF_ERROR_BUSY) && (err_code != NRF_ERROR_NOT_FOUND) && (err_code != NRF_ERROR_RESOURCES) )
{
APP_ERROR_CHECK(err_code);
}
} while (err_code == NRF_ERROR_BUSY);
SDK15.2 将其做成了通道状态,则可以等待此状态(BLE_NUS_EVT_TX_RDY)
参考多度项目