Trying to get CAN2 working.
I'm using the STM32F105R8T6, STM32Cube_FW_F1_V1.8.0, and Atollic TrueSTUDIO 9.3.0.
I have CAN1 working already, and am now trying to get CAN2 working *instead*. That is, I'm swapping over from CAN1-only to CAN2-only, as an interim step before trying to get both working simultaneously. For now, I'm only interested in RX, receiving CAN signals from a CAN generator I have.
However, CAN2-only isn't working. I *believe* the only difference in my code should be isolated to the following snippet in main.h. Please look at this and tell me if I'm missing anything, or if there's something elsewhere that I much change. The "#if 0" clause is the code that works for CAN1-only when includes via "#if 1" edit. The "#else" clause is the intend CAN2-only code. In the hardware, of course, I'm moving my connector from CAN1 to CAN2, and I've confirmed the RX signal with a scope. I'm using PB8/PB9 for remapped CAN1_RXD/CAN1_TXD, but I'm using PB12/PB13 for default CAN2_RXD/CAN2_TXD. Be aware that I've simply deduced what must be changed merely by looking at the code, since I can't find any detailed doc anywhere.
#if 0
/* Definition for CANx clock resources */
#define CANx CAN1
#define CANx_CLK_ENABLE() __HAL_RCC_CAN1_CLK_ENABLE()
#define CANx_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define CANx_FORCE_RESET() __HAL_RCC_CAN1_FORCE_RESET()
#define CANx_RELEASE_RESET() __HAL_RCC_CAN1_RELEASE_RESET()
/* Definition for CANx Pins */
#define CANx_TX_PIN GPIO_PIN_9
#define CANx_TX_GPIO_PORT GPIOB
#define CANx_RX_PIN GPIO_PIN_8
#define CANx_RX_GPIO_PORT GPIOB
/* Definition for CANx AFIO Remap */
#define CANx_AFIO_REMAP_CLK_ENABLE() __HAL_RCC_AFIO_CLK_ENABLE()
#define CANx_AFIO_REMAP_RX_TX_PIN() __HAL_AFIO_REMAP_CAN1_2()
/* Definition for CAN's NVIC */
#define CANx_RX_IRQn USB_LP_CAN1_RX0_IRQn
#define CANx_RX_IRQHandler USB_LP_CAN1_RX0_IRQHandler
#else
/* Definition for CANx clock resources */
#define CANx CAN2
#define CANx_CLK_ENABLE() __HAL_RCC_CAN2_CLK_ENABLE()
#define CANx_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define CANx_FORCE_RESET() __HAL_RCC_CAN2_FORCE_RESET()
#define CANx_RELEASE_RESET() __HAL_RCC_CAN2_RELEASE_RESET()
/* Definition for CANx Pins */
#define CANx_TX_PIN GPIO_PIN_13
#define CANx_TX_GPIO_PORT GPIOB
#define CANx_RX_PIN GPIO_PIN_12
#define CANx_RX_GPIO_PORT GPIOB
/* Definition for CANx AFIO Remap */
#define CANx_AFIO_REMAP_CLK_ENABLE() __HAL_RCC_AFIO_CLK_ENABLE()
#define CANx_AFIO_REMAP_RX_TX_PIN() __HAL_AFIO_REMAP_CAN2_DISABLE()
/* Definition for CAN's NVIC */
#define CANx_RX_IRQn CAN2_RX0_IRQn
#define CANx_RX_IRQHandler CAN2_RX0_IRQHandler
#endif