Have created a queue succesfully for RS485 task. No other task / file has the queue send function to this queue.
When using this:
while( xQueueReceive( xRS485Queue, &Rs485msg, 1000 ) != pdPASS );
// block as long as UART interrupt is still busy
After some amount of time (less then a minute) it manages to break the while loop.
I don’t get it. Anyone any suggestions where i should look? i`m sure nobody sends data to this queue
It doesnt happen when i use portMAX_DELAY, but from my insights it than only takes longer since
portMAX_DELAY = oxFFFF = 65535mS = ~ about an hour (when using 1000hz for os tick counter).
So i think when i use portMAX_DELAY it only takes longer when the loop breaks.
I could not offer any explanation for that behaviour, it is not something I have seen or had reported before.
The queue receive implementation in V5.2.0 is different. Try using that - it would be interesting to see if it made any difference. V5.2.0 is completely backward compatible with V5.1.2.