32 #if defined(CPU_FAM_STM32G4)
34 .rcc_mask = RCC_APB1ENR1_FDCANEN,
38 .it0_irqn = FDCAN1_IT0_IRQn,
39 .it1_irqn = FDCAN1_IT1_IRQn,
40 #elif defined(CPU_FAM_STM32F0)
42 .rcc_mask = RCC_APB1ENR_CANEN,
49 #if defined(CPU_FAM_STM32L4)
50 .rcc_mask = RCC_APB1ENR1_CAN1EN,
52 .rcc_mask = RCC_APB1ENR_CAN1EN,
53 #if CANDEV_STM32_CHAN_NUMOF > 1
55 .master_rcc_mask = RCC_APB1ENR_CAN1EN,
60 #if defined(CPU_FAM_STM32F1)
63 #elif defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32F4)
65 #if defined(CPU_MODEL_STM32L432KC)
79 .tx_irqn = CAN1_TX_IRQn,
80 .rx0_irqn = CAN1_RX0_IRQn,
81 .rx1_irqn = CAN1_RX1_IRQn,
82 .sce_irqn = CAN1_SCE_IRQn,
84 .en_deep_sleep_wake_up =
true,
92 #if (CANDEV_STM32_CHAN_NUMOF >= 2) && (CAN_DLL_NUMOF >= 2)
95 .rcc_mask = RCC_APB1ENR_CAN2EN,
97 .master_rcc_mask = RCC_APB1ENR_CAN1EN,
102 #ifndef CPU_FAM_STM32F1
105 .en_deep_sleep_wake_up =
true,
106 .tx_irqn = CAN2_TX_IRQn,
107 .rx0_irqn = CAN2_RX0_IRQn,
108 .rx1_irqn = CAN2_RX1_IRQn,
109 .sce_irqn = CAN2_SCE_IRQn,
118 #if (CANDEV_STM32_CHAN_NUMOF >= 3) && (CAN_DLL_NUMOF >= 3)
121 .rcc_mask = RCC_APB1ENR_CAN3EN,
123 .master_rcc_mask = RCC_APB1ENR_CAN3EN,
129 .en_deep_sleep_wake_up =
true,
130 .tx_irqn = CAN3_TX_IRQn,
131 .rx0_irqn = CAN3_RX0_IRQn,
132 .rx1_irqn = CAN3_RX1_IRQn,
133 .sce_irqn = CAN3_SCE_IRQn,
147 .
name =
"can_stm32_0",
149 #if (CANDEV_STM32_CHAN_NUMOF >= 2) && (CAN_DLL_NUMOF >= 2)
151 .name =
"can_stm32_1",
154 #if (CANDEV_STM32_CHAN_NUMOF >= 3) && (CAN_DLL_NUMOF >= 3)
156 .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.