Я использую CAN связь между платами ATSAMV71Q21 и SAMC21E18A. Иногда во время работы происходит сбой связи CAN, и мне приходится перезагружать устройство.
Я хотел бы сбросить связь CAN вместо перезапуска устройства, когда это происходит. Я видел, что когда слишком много ошибок, узлы CAN переходят в состояние «отключена». Я хотел бы добавить функцию обратного вызова в моем коде для обработки этого состояния. Для этого я зарегистрировал тип обратного вызова "CAN_ASYNC_IRQ_CB". К сожалению, я немного растерялся, и я не знаю, что делать потом, чтобы узнать, какое прерывание вызвало функцию обратного вызова. Я не думаю, что мне нужно перезапускать шину CAN, если другой запрос, такой как "Переполнение данных" "вызвал функцию обратного вызова.
Как я могу получить информацию о типе прерывания?