cancel
Showing results for 
Search instead for 
Did you mean: 

No CAN TX interrupt

avidroneg
Associate III

I've attempted to get an interrupt when one of the three CAN transmit mailboxes empties. In MX:

avidroneg_0-1765403742178.png

It generated:

    /* CAN interrupt Init */
    HAL_NVIC_SetPriority(CAN_TX_IRQn, 0, 0);
    HAL_NVIC_EnableIRQ(CAN_TX_IRQn);
    HAL_NVIC_SetPriority(CAN_RX0_IRQn, 0, 0);
    HAL_NVIC_EnableIRQ(CAN_RX0_IRQn);
    HAL_NVIC_SetPriority(CAN_RX1_IRQn, 0, 0);
    HAL_NVIC_EnableIRQ(CAN_RX1_IRQn);
    HAL_NVIC_SetPriority(CAN_SCE_IRQn, 0, 0);
    HAL_NVIC_EnableIRQ(CAN_SCE_IRQn);

 

I am using the HAL method HAL_CAN_AddTxMessage. This method seems to be working because I see CAN data on the wire. However, I never get an interrupt. I have a breakpoint on this function:

void CAN_TX_IRQHandler(void)
{
  /* USER CODE BEGIN CAN_TX_IRQn 0 */

  /* USER CODE END CAN_TX_IRQn 0 */
  HAL_CAN_IRQHandler(&hcan);
  /* USER CODE BEGIN CAN_TX_IRQn 1 */

  /* USER CODE END CAN_TX_IRQn 1 */
}

 

and it never gets there. Why might this be?

0 REPLIES 0