Commit 8301f0a2 authored by 张金硕's avatar 张金硕

🐞 fix:从bussoff恢复后,只调用一次Can_RX_Apply_Buff,不使用驱动给的中断

parent 197e9918
......@@ -188,7 +188,7 @@ void COM_CAN_Init(void)
// CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Enable);
}
uint8_t u8BusoffRecoverFlag = 0U;
/**
* @brief Buff恢复函数
* @param deltaTime 调用时间 单位ms 10MS调用
......@@ -197,6 +197,7 @@ void Can_BusOff_Recover(uint8_t deltaTime)
{
if (get_can_busoff(CAN_CH_0) == 2)
{
u8BusoffRecoverFlag = 1U;
if (RSCAN0Busoff.Status == RSCAN0_BUS_STABLE)
{
RSCAN0Busoff.Status = RSCAN0_BUS_OFF_LV1;
......@@ -236,6 +237,11 @@ void Can_BusOff_Recover(uint8_t deltaTime)
}
else /* 总线正常,没有Bus-off发生*/
{
if(u8BusoffRecoverFlag == 1U)//从bussoff恢复后,只调用一次Can_RX_Apply_Buff
{
u8BusoffRecoverFlag = 0U;
Can_RX_Apply_Buff();
}
}
}
......
......@@ -107,7 +107,7 @@ uint8_t rte_can_init(can_config_st_t *config)
// ISR_Register(CAN0TRX_IRQn, can_tx_handler);
ISR_Register(CAN0ERR_IRQn, can_error_handler);
// ISR_Register(CAN0ERR_IRQn, can_error_handler);/*进入bussoff后,不使用驱动给的错误中断*/
// ISR_DisRegister(CAN0REC_IRQn, can_recv_handler);
......
......@@ -20,7 +20,7 @@ void Sys_2ms_Tasks(void)
Sys_Status_Update_Service();
Analog_Signal_Conv_Service();
AMT630H_Main();
Check_MCU_Info_in_630H();
// Check_MCU_Info_in_630H();
DoCAN_Timer_Update(2000u);
//Can_Write_Fun(&CAN_CH0_CanMsgTxOp, 2000u);无外发
CanMSg_XMS_Analysis(&CAN_CH0_CanMsgOp, 2u);
......@@ -33,6 +33,7 @@ void Sys_5ms_Tasks(void)
void Sys_10ms_Tasks(void)
{
Can_BusOff_Recover(10);
FaultCode_Service(10u);
Line_In_Debounce_Service(10u);
My_Key_Service();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment