# How much hardware is needed for HAL_CAN_Transmit not to give a TIMEOUT?

This question is related to Question

I wonder how much hardware is needed to not make HAL_CAN_Transmit give a TIMEOUT...

Is only the STM32F103C8T6 needed (in my case)

Or a CAN transceiver attached to Can Rx and Can Tx (PB8 and PB9) ?

Or is it also needed that the CAN transceiver is coupled with another CAN transceiver?

Or is there a mistake in my circuit:

What I connected:

- STM32F103C8T6 #1: PB8 -> CAN Transceiver 1 RX
- STM32F103C8T6 #1: PB9 -> CAN Transceiver 1 TX
- CAN Transceiver 1 CANL -> CAN Transceiver 2 CANL
- CAN Transceiver 1 CANH -> CAN Transceiver 2 CANH
- STM32F103C8T6 #2: PB8 -> CAN Transceiver 2 RX
- STM32F103C8T6 #2: PB9 -> CAN Transceiver 2 TX


(and of course all VCC/GNDs)

• The transceivers is not what's important (though you'll of course need them), but the controllers, that reside inside the MCUs. You need to have at least 2 CAN controllers connected to the bus and they must both be enabled. They should also use the same settings for baudrate (and preferably same settings for time quanta too). – Lundin Oct 19 '17 at 15:14
• @Lundin I assume the CAN controller is inside the STM32 (?) Do you mean I should connect directly the PB8 from one STM to PB9 to the other STM and vice versa? And not use the transceivers at all (as first test)? – Michel Keijzers Oct 19 '17 at 15:18
• No. I'm saying that tou should make sure you have 2 microcontrollers and 2 CAN transceivers. – Lundin Oct 20 '17 at 6:49
• @Lundin: that's what I did, I added the circuit in the other question. – Michel Keijzers Oct 20 '17 at 9:20