diff --git a/os/hal/ports/STM32/STM32F4xx/stm32_isr.h b/os/hal/ports/STM32/STM32F4xx/stm32_isr.h index 90b867d7a..028aa95dd 100644 --- a/os/hal/ports/STM32/STM32F4xx/stm32_isr.h +++ b/os/hal/ports/STM32/STM32F4xx/stm32_isr.h @@ -75,6 +75,10 @@ #define STM32_CAN2_RX0_HANDLER Vector140 #define STM32_CAN2_RX1_HANDLER Vector144 #define STM32_CAN2_SCE_HANDLER Vector148 +#define STM32_CAN3_TX_HANDLER Vector168 +#define STM32_CAN3_RX0_HANDLER Vector16C +#define STM32_CAN3_RX1_HANDLER Vector170 +#define STM32_CAN3_SCE_HANDLER Vector174 #define STM32_CAN1_TX_NUMBER 19 #define STM32_CAN1_RX0_NUMBER 20 @@ -84,6 +88,10 @@ #define STM32_CAN2_RX0_NUMBER 64 #define STM32_CAN2_RX1_NUMBER 65 #define STM32_CAN2_SCE_NUMBER 66 +#define STM32_CAN3_TX_NUMBER 74 +#define STM32_CAN3_RX0_NUMBER 75 +#define STM32_CAN3_RX1_NUMBER 76 +#define STM32_CAN3_SCE_NUMBER 77 /* * EXTI unit. diff --git a/os/hal/ports/STM32/STM32F4xx/stm32_rcc.h b/os/hal/ports/STM32/STM32F4xx/stm32_rcc.h index 3f7488daf..20ece9d4e 100644 --- a/os/hal/ports/STM32/STM32F4xx/stm32_rcc.h +++ b/os/hal/ports/STM32/STM32F4xx/stm32_rcc.h @@ -510,6 +510,29 @@ * @api */ #define rccResetCAN2() rccResetAPB1(RCC_APB1RSTR_CAN2RST) + +/** + * @brief Resets the CAN3 peripheral. + * + * @api + */ +#define rccResetCAN3() rccResetAPB1(RCC_APB1RSTR_CAN3RST) + +/** + * @brief Enables the CAN3 peripheral clock. + * + * @param[in] lp low power enable flag + * + * @api + */ +#define rccEnableCAN3(lp) rccEnableAPB1(RCC_APB1ENR_CAN3EN, lp) + +/** + * @brief Disables the CAN3 peripheral clock. + * + * @api + */ +#define rccDisableCAN3() rccDisableAPB1(RCC_APB1ENR_CAN3EN) /** @} */ /** diff --git a/os/hal/ports/STM32/STM32F4xx/stm32_registry.h b/os/hal/ports/STM32/STM32F4xx/stm32_registry.h index 75b2661c3..5b1dbcf20 100644 --- a/os/hal/ports/STM32/STM32F4xx/stm32_registry.h +++ b/os/hal/ports/STM32/STM32F4xx/stm32_registry.h @@ -1268,6 +1268,7 @@ #define STM32_HAS_CAN2 TRUE #define STM32_HAS_CAN3 TRUE #define STM32_CAN_MAX_FILTERS 28 +#define STM32_CAN3_MAX_FILTERS 14 /* DAC attributes.*/ #define STM32_HAS_DAC1_CH1 TRUE diff --git a/readme.txt b/readme.txt index 8f56aed4f..d171d8ea6 100644 --- a/readme.txt +++ b/readme.txt @@ -124,6 +124,7 @@ - NEW: Increased stacks size in RT test suite from 128 to 192. added an option to override the stack size by defining THREADS_STACK_SIZE in the makefile. +- FIX: CAN support broken on STM32F413 (bug #1232)(***********TODO*********** backported to 21.11.3). - FIX: Re-opened and fixed bug #1100 (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed wrong buffers toggling in STM32 USBv1 isochronous mode (bug #1232)