2021-11-23 03:18 AM
Hello,
I am developing a system using an STM32WB55 Nucleo, such that the STM32 receives data from a Windows application via BLE changing of characteristic value, the STM32 then sends this over uart to an external device which returns an acknowledgement via uart.
In receiving the acknowledgement on the STM32 via HW_UART_Receive_IT() and Custom_UART_RxCpltCallback(), I then look to return the data via BLE to the Windows app using Custom_Update_Char() or Custom_STM_App_Update_Char() etc. During this process, the application receives the data via the ValueChanged event, but following this the STM32 locks up.
I have narrowed the locking up to be occurring within the hci_send_req function, I believe the hci_cmd_resp_wait(HCI_TL_DEFAULT_TIMEOUT) function is never being released, causing the function to lock.
edit : Above function never gets released due to no events being raised, however the outer while loop (while(local_cmd_status == HCI_TL_CmdBusy)) within the hci_send_req function is also never released due to the inner loop never being entered similarly, as no events are being raised.
Is this the normal process (no events raised/locking) when changing the characteristic value? How can I overcome this issue?
If anyone has any suggestions they would be much appreciated.