diff --git a/f1/can/src/can.c b/f1/can/src/can.c index a8de97afe8bfb87fe9a19f6549e765a0f5f684fe..182a9ae75293559ff52e6902feabf5b26898a3f5 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; }