STM32F446RE CAN Works in Loopback Mode but Not in Normal Mode
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2025-03-25 2:59 PM - last edited on ‎2025-03-25 3:15 PM by mƎALLEm
Hello,
I configured CAN communication between two STM32F446RE boards. The code works in Loopback Mode, but not in Normal Mode.
I did not use an external CAN transceiver, as I read that direct communication is possible on the STM32F446RE.
What I have tried:
- CAN initialization is correct, and messages are transmitted successfully in Loopback Mode.
- In Normal Mode, HAL_CAN_AddTxMessage() returns HAL_OK, but no messages are received.
- Connected CAN_TX of Board 1 to CAN_RX of Board 2 and vice versa, with a shared GND.
- Enabled CAN interrupts and checked for errors using HAL_CAN_ErrorCallback(), but none appear.
Solved! Go to Solution.
- Labels:
-
CAN
-
STM32F4 Series
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2025-03-25 3:13 PM - edited ‎2025-03-26 12:57 AM
Hello,
@AsmaEST wrote:
I did not use an external CAN transceiver.
You can't do that in Normal mode. You need a transceiver for each CAN node.
And this is the (minimum) structure needed for this mode:
There are other methods without transceiver that I don't recommend.
But if you are connecting Tx to Rx (like an UART communication) this is not the correct HW for CAN and this will never work.
Hope that answers your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2025-03-25 3:13 PM - edited ‎2025-03-26 12:57 AM
Hello,
@AsmaEST wrote:
I did not use an external CAN transceiver.
You can't do that in Normal mode. You need a transceiver for each CAN node.
And this is the (minimum) structure needed for this mode:
There are other methods without transceiver that I don't recommend.
But if you are connecting Tx to Rx (like an UART communication) this is not the correct HW for CAN and this will never work.
Hope that answers your question.
