www.pudn.com > 12can.rar > 2can_r.c


///////can 单消息接收程序//////////// 
////////2can_r.c/////////////// 
#include "candeal0.h" 
void canini(){ 
	clear_msg_objects(); 
	init_msg_object_RX (0x04,2);//初始化发送 
	init_msg_object_TX (0x02,1); 
	EIE2 |= 0x20; 
	EA = 1; 
	SFRPAGE = CAN0_PAGE; 
	CAN0CN=0X41; 
	CAN0ADR=BITREG; 
	CAN0DAT=0X34c0;//调波特率 
	start_CAN(); 
} 
void config(){ 
//看门狗禁止 
	WDTCN = 0x07;	 
    WDTCN = 0xDE;    
   	WDTCN = 0xAD; 
	SFRPAGE = 0x0F; 
//交叉开关使能,但没有进行外围设备配置 
	XBR0 = 0x00;	 
	XBR1 = 0x00;	 
	XBR2 = 0x40; 
 	XBR3 = 0x00;    
//管脚输出配置,P0口为开漏输出,其中P0.6接上拉电阻,P0为数字输入口 
 	SFRPAGE = 0x0F; 
 	P0MDOUT = 0x00;  
 	P1MDIN = 0xFF;   
//晶振配置,采用内部晶振8分频 
	SFRPAGE = 0x0F; 
 	CLKSEL = 0x00;   
	OSCXCN = 0x00;	 
	OSCICN = 0x84;	 
} 
main(){ 
	config(); 
	canini(); 
	while(1); 
	 
} 
void ISRname (void) interrupt 19 
 
{	temppage=SFRPAGE; 
   SFRPAGE = CAN0_PAGE; 
   status = CAN0STA; 
   if ((status&0x10) != 0){ 
	   CAN0STA&=0xef; 
	   receive_data (0x04); 
   }  
   SFRPAGE=temppage; 
}