diff --git a/cpu/stm32_common/include/can_params.h b/cpu/stm32_common/include/can_params.h index 47f98badb8..a5a927fe9e 100644 --- a/cpu/stm32_common/include/can_params.h +++ b/cpu/stm32_common/include/can_params.h @@ -39,18 +39,26 @@ static const can_conf_t candev_conf[] = { .irqn = CEC_CAN_IRQn, #else .can = CAN1, +#if defined(CPU_FAM_STM32L4) + .rcc_mask = RCC_APB1ENR1_CAN1EN, +#else .rcc_mask = RCC_APB1ENR_CAN1EN, .can_master = CAN1, .master_rcc_mask = RCC_APB1ENR_CAN1EN, .first_filter = 0, .nb_filters = 14, -#ifndef CPU_FAM_STM32F1 +#endif +#if defined(CPU_FAM_STM32F1) + .rx_pin = GPIO_PIN(PORT_A, 11), + .tx_pin = GPIO_PIN(PORT_A, 12), +#elif defined(CPU_FAM_STM32L4) + .rx_pin = GPIO_PIN(PORT_B, 8), + .tx_pin = GPIO_PIN(PORT_B, 9), + .af = GPIO_AF9, +#else .rx_pin = GPIO_PIN(PORT_D, 0), .tx_pin = GPIO_PIN(PORT_D, 1), .af = GPIO_AF9, -#else - .rx_pin = GPIO_PIN(PORT_A, 11), - .tx_pin = GPIO_PIN(PORT_A, 12), #endif .tx_irqn = CAN1_TX_IRQn, .rx0_irqn = CAN1_RX0_IRQn, diff --git a/cpu/stm32_common/include/candev_stm32.h b/cpu/stm32_common/include/candev_stm32.h index 5a277c7990..8b4a8dc839 100644 --- a/cpu/stm32_common/include/candev_stm32.h +++ b/cpu/stm32_common/include/candev_stm32.h @@ -41,7 +41,8 @@ extern "C" { #define CANDEV_STM32_CHAN_NUMOF 3 #elif defined(CPU_FAM_STM32F1) || defined(CPU_FAM_STM32F2) || defined(CPU_FAM_STM32F4) #define CANDEV_STM32_CHAN_NUMOF 2 -#elif defined(CPU_FAM_STM32F0) || defined(CPU_FAM_STM32F3) || DOXYGEN +#elif defined(CPU_FAM_STM32F0) || defined(CPU_FAM_STM32F3) || \ + defined(CPU_FAM_STM32L4) || DOXYGEN /** Number of channels in the device (up to 3) */ #define CANDEV_STM32_CHAN_NUMOF 1 #else