When porting bootloader program, can message can be received but not sent.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

When porting bootloader program, can message can be received but not sent.

696 Views
yanren
Contributor I

When debugging to flexcan_ Flexcan under driver. C_ StaterSendData()--<if(state->mbs[mb_idx].state)!= FLEXCAN_ MB_ Idle >, the actual state is flexcan_ MB_ Busy, how to solve this problem?

0 Kudos
2 Replies

649 Views
yanren
Contributor I

I have solved this problem, because the sending status is modified in advance by other functions, resulting in that the information can be received and cannot be sent.

0 Kudos

664 Views
PetrS
NXP TechSupport
NXP TechSupport

Hi,

the state flexcan_ MB_ Busy indicates the prepared message is still not successfully transmitted. Question could be why? Lets assume CAN transceiver circuitry is right and transceiver is active. Maybe some errors are detected, like ACK, bit error. If yes, it could be e.g. due to CAN bit setting. If no errors are detected, is the MB's mask interrupt bit still set? If not, I think the only option to leave this within code is to Abort the message using the respective API.

BR, Petr    

0 Kudos