From 74d7770ae1f9eeb39851b2db90d09593b5741bb1 Mon Sep 17 00:00:00 2001 From: Sergi Hernandez Juan <shernand@iri.upc.edu> Date: Wed, 19 May 2021 17:56:36 +0200 Subject: [PATCH] Minor chnages in the TX CAN interrupt handling to avoid timout problems. --- f1/can/src/can.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/f1/can/src/can.c b/f1/can/src/can.c index a8de97a..182a9ae 100644 --- a/f1/can/src/can.c +++ b/f1/can/src/can.c @@ -264,8 +264,8 @@ void HAL_CAN_TxCpltCallback(CAN_HandleTypeDef* CANHandle) } } //__HAL_CAN_DISABLE_IT(CANHandle,CAN_IT_TME); - __HAL_CAN_CLEAR_FLAG(CANHandle,CAN_FLAG_RQCP0); - __HAL_CAN_CLEAR_FLAG(CANHandle,CAN_FLAG_TXOK0); + //__HAL_CAN_CLEAR_FLAG(CANHandle,CAN_FLAG_RQCP0); + //__HAL_CAN_CLEAR_FLAG(CANHandle,CAN_FLAG_TXOK0); } void HAL_CAN_RxCpltCallback(CAN_HandleTypeDef* CANHandle) @@ -381,6 +381,8 @@ unsigned char can_cancel_receive_irq(void) /* DMA functions */ unsigned char can_send_dma(unsigned char *data,unsigned short int length) { + __HAL_CAN_CLEAR_FLAG(&CANHandle,CAN_FLAG_RQCP0); + __HAL_CAN_CLEAR_FLAG(&CANHandle,CAN_FLAG_TXOK0); if(length > 8){ CANHandle.pTxMsg->DLC = 8; for (uint8_t i=0;i<length;i++) @@ -401,14 +403,14 @@ unsigned char can_send_dma(unsigned char *data,unsigned short int length) { CANHandle.pTxMsg->Data[i] = data[i]; } + can_send_lenght = 0; + can_send_iterations = 0; HAL_CAN_Transmit_IT(&CANHandle); uint8_t byte; comm_do_dma_send(can_comm_dev); comm_do_irq_send(can_comm_dev,&byte); } //HAL_CAN_Transmit_IT(&CANHandle); - __HAL_CAN_CLEAR_FLAG(&CANHandle,CAN_FLAG_RQCP0); - __HAL_CAN_CLEAR_FLAG(&CANHandle,CAN_FLAG_TXOK0); return 0x00; } -- GitLab