29 #if defined(CPU_FAM_STM32G4)
31 .rcc_mask = RCC_APB1ENR1_FDCANEN,
35 .it0_irqn = FDCAN1_IT0_IRQn,
36 .it1_irqn = FDCAN1_IT1_IRQn,
37 #elif defined(CPU_FAM_STM32F0)
39 .rcc_mask = RCC_APB1ENR_CANEN,
46 #if defined(CPU_FAM_STM32L4)
47 .rcc_mask = RCC_APB1ENR1_CAN1EN,
49 .rcc_mask = RCC_APB1ENR_CAN1EN,
50 #if CANDEV_STM32_CHAN_NUMOF > 1
52 .master_rcc_mask = RCC_APB1ENR_CAN1EN,
57 #if defined(CPU_FAM_STM32F1)
60 #elif defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32F4)
62 #if defined(CPU_MODEL_STM32L432KC)
76 .tx_irqn = CAN1_TX_IRQn,
77 .rx0_irqn = CAN1_RX0_IRQn,
78 .rx1_irqn = CAN1_RX1_IRQn,
79 .sce_irqn = CAN1_SCE_IRQn,
81 .en_deep_sleep_wake_up =
true,
89 #if (CANDEV_STM32_CHAN_NUMOF >= 2) && (CAN_DLL_NUMOF >= 2)
92 .rcc_mask = RCC_APB1ENR_CAN2EN,
94 .master_rcc_mask = RCC_APB1ENR_CAN1EN,
99 #ifndef CPU_FAM_STM32F1
102 .en_deep_sleep_wake_up =
true,
103 .tx_irqn = CAN2_TX_IRQn,
104 .rx0_irqn = CAN2_RX0_IRQn,
105 .rx1_irqn = CAN2_RX1_IRQn,
106 .sce_irqn = CAN2_SCE_IRQn,
115 #if (CANDEV_STM32_CHAN_NUMOF >= 3) && (CAN_DLL_NUMOF >= 3)
118 .rcc_mask = RCC_APB1ENR_CAN3EN,
120 .master_rcc_mask = RCC_APB1ENR_CAN3EN,
126 .en_deep_sleep_wake_up =
true,
127 .tx_irqn = CAN3_TX_IRQn,
128 .rx0_irqn = CAN3_RX0_IRQn,
129 .rx1_irqn = CAN3_RX1_IRQn,
130 .sce_irqn = CAN3_SCE_IRQn,
144 .
name =
"can_stm32_0",
146 #if (CANDEV_STM32_CHAN_NUMOF >= 2) && (CAN_DLL_NUMOF >= 2)
148 .name =
"can_stm32_1",
151 #if (CANDEV_STM32_CHAN_NUMOF >= 3) && (CAN_DLL_NUMOF >= 3)
153 .name =
"can_stm32_2",
#define GPIO_PIN(x, y)
Define a CPU specific GPIO pin generator macro.
@ GPIO_AF4
use alternate function 4
@ GPIO_AF9
use alternate function 9
@ GPIO_AF11
use alternate function 11
Low-level CAN peripheral driver interface definitions.
ESP CAN device configuration.
Linux candev configuration.
Parameters to initialize a candev.
const char * name
candev name to set
Definitions of CAN device interface.