There were multiple issues in the project -
- It was using
USART_WriteBlocking
API and was expecting USART ISR to fire. The correct API to use isUSART_TransferSendNonBlocking
. - It was first suspending the task and then calling UART send which would never get called as that task is suspended. The correct sequence should be - first invoke the send operation and then wait for a signal from the ISR.
- If
InitTask
is not needed anymore, it should delete itself. - As @hs2 mentioned, it is never a good idea to use suspend/resume for synchronization and therefore, I updated the code to use semaphore instead.
Here is the updated code -
lpcxpresso55s69_freertos_usart.zip (770.3 KB)