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

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

parent 197e9918
...@@ -188,7 +188,7 @@ void COM_CAN_Init(void) ...@@ -188,7 +188,7 @@ void COM_CAN_Init(void)
// CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Enable); // CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Enable);
} }
uint8_t u8BusoffRecoverFlag = 0U;
/** /**
* @brief Buff恢复函数 * @brief Buff恢复函数
* @param deltaTime 调用时间 单位ms 10MS调用 * @param deltaTime 调用时间 单位ms 10MS调用
...@@ -197,6 +197,7 @@ void Can_BusOff_Recover(uint8_t deltaTime) ...@@ -197,6 +197,7 @@ void Can_BusOff_Recover(uint8_t deltaTime)
{ {
if (get_can_busoff(CAN_CH_0) == 2) if (get_can_busoff(CAN_CH_0) == 2)
{ {
u8BusoffRecoverFlag = 1U;
if (RSCAN0Busoff.Status == RSCAN0_BUS_STABLE) if (RSCAN0Busoff.Status == RSCAN0_BUS_STABLE)
{ {
RSCAN0Busoff.Status = RSCAN0_BUS_OFF_LV1; RSCAN0Busoff.Status = RSCAN0_BUS_OFF_LV1;
...@@ -236,6 +237,11 @@ void Can_BusOff_Recover(uint8_t deltaTime) ...@@ -236,6 +237,11 @@ void Can_BusOff_Recover(uint8_t deltaTime)
} }
else /* 总线正常,没有Bus-off发生*/ 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) ...@@ -107,7 +107,7 @@ uint8_t rte_can_init(can_config_st_t *config)
// ISR_Register(CAN0TRX_IRQn, can_tx_handler); // 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); // ISR_DisRegister(CAN0REC_IRQn, can_recv_handler);
......
...@@ -20,7 +20,7 @@ void Sys_2ms_Tasks(void) ...@@ -20,7 +20,7 @@ void Sys_2ms_Tasks(void)
Sys_Status_Update_Service(); Sys_Status_Update_Service();
Analog_Signal_Conv_Service(); Analog_Signal_Conv_Service();
AMT630H_Main(); AMT630H_Main();
Check_MCU_Info_in_630H(); // Check_MCU_Info_in_630H();
DoCAN_Timer_Update(2000u); DoCAN_Timer_Update(2000u);
//Can_Write_Fun(&CAN_CH0_CanMsgTxOp, 2000u);无外发 //Can_Write_Fun(&CAN_CH0_CanMsgTxOp, 2000u);无外发
CanMSg_XMS_Analysis(&CAN_CH0_CanMsgOp, 2u); CanMSg_XMS_Analysis(&CAN_CH0_CanMsgOp, 2u);
...@@ -33,6 +33,7 @@ void Sys_5ms_Tasks(void) ...@@ -33,6 +33,7 @@ void Sys_5ms_Tasks(void)
void Sys_10ms_Tasks(void) void Sys_10ms_Tasks(void)
{ {
Can_BusOff_Recover(10);
FaultCode_Service(10u); FaultCode_Service(10u);
Line_In_Debounce_Service(10u); Line_In_Debounce_Service(10u);
My_Key_Service(); 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