Skip to main content
GrantW
Associate III
April 15, 2019
Solved

enum declaration errors trying to compile a CAN app using stm32f4xx_hal_can.c

  • April 15, 2019
  • 2 replies
  • 1177 views

I'm building a CAN app with STM32CUBEMX and TrueStudio. I'm using interrupts so need to register my calback funcs. I put #define USE_HAL_CAN_REGISTER_CALLBACKS 1 at the top of main.h. The following line in my code:

HAL_CAN_RegisterCallback(&hcan1, HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID, HAL_CAN_RxFIFO0MsgPendingCallback );

is producing the error "HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID undeclared". But it is a value of the enum type HAL_CAN_CallbackIDTypeDef which is declared in stm32f4xx_hal_can.h which is included in main.h. I'm stumped.

This topic has been closed for replies.
Best answer by Tesla DeLorean

The normal model here is to not explicitly include that file, but rather the top level HAL include file, and enable the sub-level one via #define in the stm32blah_hal_conf.h file​

2 replies

Tesla DeLorean
Tesla DeLoreanBest answer
Guru
April 15, 2019

The normal model here is to not explicitly include that file, but rather the top level HAL include file, and enable the sub-level one via #define in the stm32blah_hal_conf.h file​

Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
GrantW
GrantWAuthor
Associate III
April 16, 2019

That worked, thanks. I was following instructions in stm32f4xx_hal_can.c which said I had to do all this register callbacks rigamarole. I took that all out and I'm at least compiling. Will test tomorrow.