Обновление
This commit is contained in:
parent
4b69b09d7e
commit
1ab1f01925
|
|
@ -224,31 +224,34 @@ bool vCanSerialPortFrameDMAInit(
|
|||
if (CAN_ErrorInterrupt_CallBack == NULL) {
|
||||
env->tIntCfg.bEnErrorInterrupt = 0U;
|
||||
env->tIntCfg.pErrorNotify = NULL;
|
||||
|
||||
env->tIntCfg.bEnTxMBInterrupt = 0U;
|
||||
env->tIntCfg.pTxMBNotify = NULL;
|
||||
|
||||
env->tIntCfg.bEnRxMBInterrupt = 0U;
|
||||
env->tIntCfg.pRxMBNotify = NULL;
|
||||
|
||||
env->tIntCfg.bEnRxFifoInterrupt = 0U;
|
||||
env->tIntCfg.pRxFifoNotify = NULL;
|
||||
|
||||
} else {
|
||||
env->tIntCfg.bEnErrorInterrupt = 1U;
|
||||
env->tIntCfg.pErrorNotify = CAN_ErrorInterrupt_CallBack;
|
||||
|
||||
env->tIntCfg.bEnTxMBInterrupt = 0U;
|
||||
env->tIntCfg.pTxMBNotify = NULL;
|
||||
|
||||
env->tIntCfg.bEnRxMBInterrupt = 1U;
|
||||
env->tIntCfg.pRxMBNotify = CAN_RxInterrupt_CallBack;
|
||||
|
||||
env->tIntCfg.bEnRxFifoInterrupt = 0U;
|
||||
env->tIntCfg.pRxFifoNotify = CAN_RxFifoInterrupt_CallBack;
|
||||
|
||||
}
|
||||
|
||||
if (CAN_TxInterrupt_CallBack == NULL) {
|
||||
env->tIntCfg.bEnTxMBInterrupt = 0U;
|
||||
env->tIntCfg.pTxMBNotify = NULL;
|
||||
} else {
|
||||
env->tIntCfg.bEnTxMBInterrupt = 1U;
|
||||
env->tIntCfg.pTxMBNotify = CAN_TxInterrupt_CallBack;
|
||||
}
|
||||
|
||||
if (CAN_RxInterrupt_CallBack == NULL) {
|
||||
env->tIntCfg.bEnRxMBInterrupt = 0U;
|
||||
env->tIntCfg.pRxMBNotify = NULL;
|
||||
} else {
|
||||
env->tIntCfg.bEnRxMBInterrupt = 1U;
|
||||
env->tIntCfg.pRxMBNotify = CAN_RxInterrupt_CallBack;
|
||||
}
|
||||
|
||||
if (CAN_RxFifoInterrupt_CallBack == NULL) {
|
||||
env->tIntCfg.bEnRxFifoInterrupt = 0U;
|
||||
env->tIntCfg.pRxFifoNotify = NULL;
|
||||
} else {
|
||||
env->tIntCfg.bEnRxFifoInterrupt = 1U;
|
||||
env->tIntCfg.pRxFifoNotify = CAN_RxFifoInterrupt_CallBack;
|
||||
}
|
||||
|
||||
if ((env->tIntCfg.bEnErrorInterrupt) ||
|
||||
(env->tIntCfg.bEnTxMBInterrupt) ||
|
||||
|
|
@ -706,6 +709,23 @@ uint16_t vCanSerialPortFrameTransmit(tCanSerialPortFrameFlagchip *env, uint8_t *
|
|||
|
||||
uint16_t sent = 0;
|
||||
|
||||
|
||||
FLEXCAN_ErrorInfoType errInfo;
|
||||
FLEXCAN_GetErrorInfo(env->CAN_INDEX, &errInfo);
|
||||
|
||||
|
||||
uint32_t fltConf = (errInfo.u32ErrorValue & FLEXCAN_ESR1_FLTCONF_MASK) >> FLEXCAN_ESR1_FLTCONF_SHIFT;
|
||||
|
||||
if (fltConf == 1) { // Error Passive
|
||||
asm("nop");
|
||||
}
|
||||
|
||||
|
||||
if (fltConf == 3) {
|
||||
// Текущее состояние — Bus Off
|
||||
asm("nop");
|
||||
}
|
||||
|
||||
if (osMutexAcquire(env->access, 1000) == osOK) {
|
||||
|
||||
env->id = adr;
|
||||
|
|
|
|||
Loading…
Reference in New Issue