欢迎来到天天文库
浏览记录
ID:47486517
大小:72.00 KB
页数:11页
时间:2020-01-12
《CAN总线的实现-SJA1000实例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、以下是我做的CAN节点的测试程序,实现两个节点传送数据,程序主要分三部分SJA1000的初始化,接收数据,发送数据./******************************************************函数原型: bitSja_1000_Init(void)**功 能: 初始化SJA10000**入口参数: 无**返回值: 0:初始化成功 1:复位失败 2: 测试sja1000失败 3:设置失败 4:设置验收滤波器失败 5:设置波特率失败 ***********************
2、******************************/unsignedcharSja_1000_Init(void){ bits; EA=0; s=BCAN_ENTER_RETMODEL(); if(s==1)return1; s=BCAN_CREATE_COMMUNATION(); if(s==1)return2; s=BCAN_SET_OUTCLK(0xc0);//Pelican if(s==1)return3; s=BCAN_SET_OBJECT(0xFF,0x4E,0x16,0x00,0xff,0x00,0x00,0x00); if(s==1)retur
3、n4; s=BCAN_SET_BANDRATE(CAN_BPS_1M); if(s==1)return5; SJA_BCANAdr=REG_OCR; *SJA_BCANAdr=0x1a; SJA_BCANAdr=REG_IER; *SJA_BCANAdr=0x03; s=BCAN_SET_CONTROL(0x08); if(s==1)return6;EA=1; return0; }}/*********************************************************************
4、函数原型:bitBCAN_SET_OUTCLK(unsignedcharClock_Out) **参数说明: ** Clock_Out:存放时钟分频寄存器(CDR)的参数设置 **返回值: ** 0;设置成功
5、 ** 1;设置失败 **说明:设置SJA1000的时钟分频。该子程序只能用于复位模式 *******************************************************************/bitBCAN_SET_OUTCLK(unsignedcharClock_Out){ SJA_BCANAdr=REG_CDR; *SJA_BCANAdr=Clock_O
6、ut; if(*SJA_BCANAdr!=Clock_Out) return1; else return0;}/*********************************************************************函数原型:bitBCAN_SET_OBJECT(unsignedchar BCAN_ACR0,BCAN_ACR1,BCAN_ACR2,BCAN_ACR3, BCAN_AMR0,BCAN_AMR1,BCAN_AMR2,BCAN_AMR3 ) *参数说明:
7、 ** BCAN_ACR(0-3):存放验收代码寄存器(ACR)的参数设置 ** BCAN_AMR(0-3):存放接收屏蔽寄存器(AMR)的参数设置 **返回值: **
此文档下载收益归作者所有