📄 can.c
字号:
#include "f2407_c.h"
#define LED port40
volatile ioport unsigned int port40;/*LED*/
unsigned int test_can(void);
void can_init(void)
{
*CAN_IFR=0xffff;
/*config CAN timer*/
*MCR=0x1000;
/**MCR=*MCR|0x1000; /*set CCR=1*/
while(((*GSR)&0x0010)!=0x0010); /*if CCE=0 then wait*/
*BCR1=0x0023/*0x01ab*/;
*BCR2=0x0003; /*can clk=1Mhz, 10 TQs*/
*MCR=(*MCR)&0xefff; /*CCR=0;*/
while(((*GSR)&0x0010)==0x0010); /*if CCE=1 then wait*/
/*config mailbox*/
*MDER=0xff80; /*box0-5 disabled*/
/*box3 is receive box*/
*MCR=(*MCR)|0x0100; /*set CDR=1*/
/*self-test mode*/
*MSGID4H=0x0555;
*MSGID4L=0xaaaa; /*mailbox4 send*/
*MSGCTRL4=0x0008; /*8 byte data */
*MBX4A=0x2222;
*MBX4B=0x5555;
*MBX4C=0xaaaa;
*MBX4D=0xeeee;
*MCR=(*MCR)&0xfeff; /*CDR=0;*/
}
unsigned int test_can(void)
{
unsigned int data_rec;
can_init();
*MDER=(*MDER)|0x0010; /*enable mailbox4*/
while(1)
{
*TCR=(*TCR)|0x0040; /*TRS4=1*/
while(((*TCR)&0x4000)!=0x4000); /*if TA4=0 then wait*/
*TCR=(*TCR)|0x4000; /*set TA4=1*/
}
return(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -