Доброго времени суток!
Недавно начал работу с микроконтроллерами ARM, столкнулся с проблемой, которую никак не могу решить.
Необходимо организовать обмен с PC через интерфейс CAN. На симуляторе все работает отлично, при загрузке на контроллер
передачи нет. При отладке по шагам видно, что значения регистров CANMOD, CANBTR и т.д. остаются неизменными. Контроллер CAN постоянно находится в режиме RM. Упростил код до безобразия, но присвоить какому либо из вышеперечисленных регистров значения, отличные от значений по умолчанию, не получается.
Для программирования использую Keil uVision 4, плата Embedded Artists' LPC2468 Developer's Kit
Плата исправна, обмен через UART0 работает
Привожу фрагмент кода:
#include <LPC24xx.H>
void ConfigCAN (void)
{
PINSEL0=0x05;
CAN1MOD=0x01;
CAN1BTR=0x0049C005
CAN1MOD=0x04;
}
void TransmitCan (void)
{
if (CAN1SR&0x04)
{
CAN1TFI1=0х80080000;
CAN1TID1=0x12345678;
CAN1TDA1=0x44332211;
CAN1TDB1=0x66778855;
CAN1CMR=0x21;
}
}
int main (void) {
ConfigCAN ();
while (1)
{TransmitCan ();};
}
Повторюсь, проблема заключается не в том, что не правильные значения каких-либо регистров, а в том, что не могу записать в регистры никакое значение.
Помогите, плиз, кто сталкивался с подобным