stm32/can: Allow CAN pins to be configured per board.

This patch allows a given board to configure which pins are used for the
CAN peripherals, in a similar way to all the other bus peripherals (I2C,
UART, SPI).  To enable CAN on a board the mpconfigboard.h file should
define (for example):

    #define MICROPY_HW_CAN1_TX (pin_B9)
    #define MICROPY_HW_CAN1_RX (pin_B8)
    #define MICROPY_HW_CAN2_TX (pin_B13)
    #define MICROPY_HW_CAN2_RX (pin_B12)

And the board config file should no longer define MICROPY_HW_ENABLE_CAN.
This commit is contained in:
Damien George
2018-04-11 16:27:48 +10:00
parent 0041396f05
commit a7ebac2eae
23 changed files with 126 additions and 48 deletions

View File

@@ -736,7 +736,7 @@ void UART8_IRQHandler(void) {
}
#endif
#if MICROPY_HW_ENABLE_CAN
#if defined(MICROPY_HW_CAN1_TX)
void CAN1_RX0_IRQHandler(void) {
IRQ_ENTER(CAN1_RX0_IRQn);
can_rx_irq_handler(PYB_CAN_1, CAN_FIFO0);
@@ -754,7 +754,9 @@ void CAN1_SCE_IRQHandler(void) {
can_sce_irq_handler(PYB_CAN_1);
IRQ_EXIT(CAN1_SCE_IRQn);
}
#endif
#if defined(MICROPY_HW_CAN2_TX)
void CAN2_RX0_IRQHandler(void) {
IRQ_ENTER(CAN2_RX0_IRQn);
can_rx_irq_handler(PYB_CAN_2, CAN_FIFO0);
@@ -772,7 +774,7 @@ void CAN2_SCE_IRQHandler(void) {
can_sce_irq_handler(PYB_CAN_2);
IRQ_EXIT(CAN2_SCE_IRQn);
}
#endif // MICROPY_HW_ENABLE_CAN
#endif
#if defined(MICROPY_HW_I2C1_SCL)
void I2C1_EV_IRQHandler(void) {