esaulenka (07.07.2016 10:50, просмотров: 180) ответил _Rookie_ на Еще погонял программу, получается такая фигня:
Т.е. - клок на CAN2 включен
- обработчик прерывания написан корректно (для начала - поставить там while(1){} и брекпоинт)
- этот обработчик правильно подлинковался (проверить в мап-файле)
... и ничего не работает?..
У меня по-прежнему всё хорошо...
// Init()
// enable interrupts
CANx->IER = CAN_IER_FMPIE0; // rx fifo pending
// enable interrupts vectors
if (aChannel == CANch1)
NVIC_EnableIRQ (CAN1_RX0_IRQn);
else
NVIC_EnableIRQ (CAN2_RX0_IRQn);
extern "C" void CAN1_RX0_IRQHandler ()
{
// проверка CANx->RF0R & CAN_RF0R_FMP0
// и чтение CANx->sFIFOMailBox[0]
}
extern "C" void CAN2_RX0_IRQHandler ()
{
// тут аналогично
}