From a3cb7901390a96948a4f2ba01007c54097e8ab90 Mon Sep 17 00:00:00 2001 From: Sebastian Wolf Date: Tue, 30 Jun 2026 09:34:21 +0200 Subject: [PATCH 1/3] Fix buffer index definition for CAN driver Revert guard for STM32H5 as definition works with other supported targets as well --- CANopenNode_STM32/CO_driver_STM32.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/CANopenNode_STM32/CO_driver_STM32.c b/CANopenNode_STM32/CO_driver_STM32.c index cbd63b7..1f72edf 100644 --- a/CANopenNode_STM32/CO_driver_STM32.c +++ b/CANopenNode_STM32/CO_driver_STM32.c @@ -38,13 +38,7 @@ static CO_CANmodule_t* CANModule_local = NULL; /* Local instance of global CAN m #define CANID_MASK 0x07FF /*!< CAN standard ID mask */ #define FLAG_RTR 0x8000 /*!< RTR flag, part of identifier */ -#ifndef BUFFERE_INDEXES -#ifdef STM32H5xx_HAL_CONF_H -#define BUFFERE_INDEXES FDCAN_TX_BUFFER0 | FDCAN_TX_BUFFER1 | FDCAN_TX_BUFFER2 -#else -#define BUFFERE_INDEXES 0xFFFFFFFF -#endif -#endif +#define BUFFER_INDEXES FDCAN_TX_BUFFER0 | FDCAN_TX_BUFFER1 | FDCAN_TX_BUFFER2 /******************************************************************************/ void @@ -170,7 +164,7 @@ CO_CANmodule_init(CO_CANmodule_t* CANmodule, void* CANptr, CO_CANrx_t rxArray[], | FDCAN_IT_TX_COMPLETE | FDCAN_IT_TX_FIFO_EMPTY | FDCAN_IT_BUS_OFF | FDCAN_IT_ARB_PROTOCOL_ERROR | FDCAN_IT_DATA_PROTOCOL_ERROR | FDCAN_IT_ERROR_PASSIVE | FDCAN_IT_ERROR_WARNING, - BUFFERE_INDEXES) + BUFFER_INDEXES) != HAL_OK) { return CO_ERROR_ILLEGAL_ARGUMENT; } From 528a9cadb166a0db9d578a9a0f71bfb8cc0582ea Mon Sep 17 00:00:00 2001 From: Sebastian Wolf Date: Tue, 30 Jun 2026 09:39:37 +0200 Subject: [PATCH 2/3] Add BUFFER_INDEXES definition if not defined Prevent redefinition of BUFFER_INDEXES to be able to define it elsewhere to overwrite default. --- CANopenNode_STM32/CO_driver_STM32.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CANopenNode_STM32/CO_driver_STM32.c b/CANopenNode_STM32/CO_driver_STM32.c index 1f72edf..a81d280 100644 --- a/CANopenNode_STM32/CO_driver_STM32.c +++ b/CANopenNode_STM32/CO_driver_STM32.c @@ -38,7 +38,9 @@ static CO_CANmodule_t* CANModule_local = NULL; /* Local instance of global CAN m #define CANID_MASK 0x07FF /*!< CAN standard ID mask */ #define FLAG_RTR 0x8000 /*!< RTR flag, part of identifier */ +#ifndef BUFFER_INDEXES #define BUFFER_INDEXES FDCAN_TX_BUFFER0 | FDCAN_TX_BUFFER1 | FDCAN_TX_BUFFER2 +#endif /******************************************************************************/ void From e949f31c160ef73b65b984d6ac645d41bb3d0724 Mon Sep 17 00:00:00 2001 From: Sebastian Wolf Date: Wed, 1 Jul 2026 11:04:52 +0200 Subject: [PATCH 3/3] Update FDCAN buffer index definitions --- CANopenNode_STM32/CO_driver_STM32.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/CANopenNode_STM32/CO_driver_STM32.c b/CANopenNode_STM32/CO_driver_STM32.c index a81d280..78a91aa 100644 --- a/CANopenNode_STM32/CO_driver_STM32.c +++ b/CANopenNode_STM32/CO_driver_STM32.c @@ -38,8 +38,15 @@ static CO_CANmodule_t* CANModule_local = NULL; /* Local instance of global CAN m #define CANID_MASK 0x07FF /*!< CAN standard ID mask */ #define FLAG_RTR 0x8000 /*!< RTR flag, part of identifier */ -#ifndef BUFFER_INDEXES -#define BUFFER_INDEXES FDCAN_TX_BUFFER0 | FDCAN_TX_BUFFER1 | FDCAN_TX_BUFFER2 +#ifndef FDCAN_BUFFER_INDEXES +#if defined (FDCAN_TX_BUFFER31) +#define FDCAN_BUFFER_INDEXES 0xFFFFFFFFU +#elif defined (FDCAN_TX_BUFFER2) +#define FDCAN_BUFFER_INDEXES FDCAN_TX_BUFFER0 | FDCAN_TX_BUFFER1 | FDCAN_TX_BUFFER2 +#else +#define FDCAN_BUFFER_INDEXES 0xFFFFFFFFU +#warning "FDCAN_BUFFER_INDEXES not defined" +#endif #endif /******************************************************************************/ @@ -166,7 +173,7 @@ CO_CANmodule_init(CO_CANmodule_t* CANmodule, void* CANptr, CO_CANrx_t rxArray[], | FDCAN_IT_TX_COMPLETE | FDCAN_IT_TX_FIFO_EMPTY | FDCAN_IT_BUS_OFF | FDCAN_IT_ARB_PROTOCOL_ERROR | FDCAN_IT_DATA_PROTOCOL_ERROR | FDCAN_IT_ERROR_PASSIVE | FDCAN_IT_ERROR_WARNING, - BUFFER_INDEXES) + FDCAN_BUFFER_INDEXES) != HAL_OK) { return CO_ERROR_ILLEGAL_ARGUMENT; }