2016-04-26 03:25 AM
Hi,
I am using the STM32F429ZI CAN peripheral in polling TX and interrupt RX with HAL library V1.4.4 of 22-January-2016. This the procedure that I use:Here my problem: sometimes the receive interrupt occours during HAL_CAN_Transmit execution where CAN peripheral is locked (__HAL_LOCK(hcan);). In this case the receive interrupt return a BUSY without end the receive procedure and without call the HAL_CAN_RxCpltCallback, so I can not receive other message!
Do you have some suggestion to solve this problem?? Inside HAL_CAN_Receive_IT I tried to comment the line __HAL_LOCK(hcan); e __HAL_UNLOCK(hcan); and all is ok. This solution in my opinion is not good. Thank you very much. Alex #stm32f4-can-tx-rx2016-04-26 05:03 AM
Hi,
I recommend you to use the last release of STM32F4, as this issue is already fixed in the version STM32Cube_FW_F4_V1.11.0Regards2016-04-26 05:33 AM
Yes, the version that I currently use is STM32Cube_FW_F4_V1.11.0 (inside the code file I see V1.4.4 of 22-January-2016), but I see the problem.
Thanl you for your answer, any more suggestion???2016-04-26 05:42 AM
Hi,
Yes, it seem this bug is not fixed.Regards2016-04-26 06:49 AM
Hi
pavone.alessandro,
A new specification for the LOCK and UNLOCK process is ongoing.
But by waiting the new version, we propose to remove Lock from HAL_CAN_Transmit() or use the HAL_CAN_Transmit_It() as workaround.
Sorry for the inconvenience.
-Hannibal-
2016-04-26 11:09 PM
Thank you very much for fast feedback. I will follow your suggestion and I am waiting for new HAL FW release.
Bye.