Closed futuranet closed 5 months ago
Did a temporary fix
#define GPIO_AF9_CAN1 GPIO_AF9_CAN
#define CAN1_RX0_IRQn CAN_RX0_IRQn
#define CAN1_TX_IRQn CAN_TX_IRQn
#define GPIO_SPEED_FREQ_VERY_HIGH GPIO_SPEED_FREQ_HIGH
Unfortunately the chip hangs when sending a message. Specifically in
__HAL_CAN_ENABLE_IT(n_pCanHandle, CAN_IT_TX_MAILBOX_EMPTY);
Did a temporary fix
#define GPIO_AF9_CAN1 GPIO_AF9_CAN #define CAN1_RX0_IRQn CAN_RX0_IRQn #define CAN1_TX_IRQn CAN_TX_IRQn #define GPIO_SPEED_FREQ_VERY_HIGH GPIO_SPEED_FREQ_HIGH
Unfortunately the chip hangs when sending a message. Specifically in
__HAL_CAN_ENABLE_IT(n_pCanHandle, CAN_IT_TX_MAILBOX_EMPTY);
The F303 crashes because the ISRs are not defined correctly for parts with a single CAN interface. With two additional defines this workaround actually worked for me. Here is my hal_conf_extra.h:
#define HAL_CAN_MODULE_ENABLED
// Workaround for compatibility issue
#define GPIO_AF9_CAN1 GPIO_AF9_CAN
#define CAN1_RX0_IRQn CAN_RX0_IRQn
#define CAN1_TX_IRQn CAN_TX_IRQn
#define GPIO_SPEED_FREQ_VERY_HIGH GPIO_SPEED_FREQ_HIGH
#define CAN1_TX_IRQHandler CAN_TX_IRQHandler
#define CAN1_RX0_IRQHandler CAN_RX0_IRQHandler
Did a temporary fix
#define GPIO_AF9_CAN1 GPIO_AF9_CAN #define CAN1_RX0_IRQn CAN_RX0_IRQn #define CAN1_TX_IRQn CAN_TX_IRQn #define GPIO_SPEED_FREQ_VERY_HIGH GPIO_SPEED_FREQ_HIGH
Unfortunately the chip hangs when sending a message. Specifically in
__HAL_CAN_ENABLE_IT(n_pCanHandle, CAN_IT_TX_MAILBOX_EMPTY);
The F303 crashes because the ISRs are not defined correctly for parts with a single CAN interface. With two additional defines this workaround actually worked for me. Here is my hal_conf_extra.h:
#define HAL_CAN_MODULE_ENABLED // Workaround for compatibility issue #define GPIO_AF9_CAN1 GPIO_AF9_CAN #define CAN1_RX0_IRQn CAN_RX0_IRQn #define CAN1_TX_IRQn CAN_TX_IRQn #define GPIO_SPEED_FREQ_VERY_HIGH GPIO_SPEED_FREQ_HIGH #define CAN1_TX_IRQHandler CAN_TX_IRQHandler #define CAN1_RX0_IRQHandler CAN_RX0_IRQHandler
I couldn't get any better fix for this to work. So this is now included in the library. Test if it works.
In Arduino IDE: