📄 sja_basiccan.h
字号:
#define CAN_INTERFACE_0K 0 //SJA1000接口正常
#define CAN_BUS_0K 0 //CAN总线工作正常
#define CAN_INTERFACE_ERR 0x31 //SJA1000接口错误
#define CAN_ENTRESET_ERR 0x32 //SJA1000不能进入复位模式
#define CAN_QUITRESET_ERR 0x33 //SJA1000不能退出复位模式
#define CAN_INITOBJECT_ERR 0x34 //初始化报文验收滤波器错
#define CAN_INITBTR_ERR 0x35 //初始化总线定时器器错
#define CAN_INITOUTCTL_ERR 0x36 //初始化输出控制错误
#define CAN_INTCLKDIV_ERR 0x37 //初始化时钟分频控制器错
#define CAN_BUS_ERR 0x38 //SJA1000发送数据错
/************************************************************************
*以下为基本的函数说明(BasicCAN) *
************************************************************************/
/************************************************************************
*函数原型: bit BCAN_SelfTest(void) *
*参数说明: 无 *
*返回值: *
* 0 ; 表示SJA1000与处理器接口正常 *
* 1 ; 表示SJA1000与处理器接口不正常 *
* *
*说明:该函数用于检测CAN控制器的接口是否正常 *
************************************************************************/
bit BCan_SelfTest(void);
/************************************************************************
*函数原型: bit BCan_Enter_RstModel(void) *
*参数说明: 无 *
*返回值: *
* 0 ; 表示成功进入复位工作模式 *
* 1 ; 表示不能进入复位工作模式 *
* *
*说明: CAN控制器进入复位工作模式 *
************************************************************************/
bit BCan_Enter_RstModel(void);
/************************************************************************
*函数原型: bit BCan_Quit_RstModel(void) *
*参数说明: 无 *
*返回值: *
* 0 ; 表示成功退出复位工作模式 *
* 1 ; 表示不能退出复位工作模式 *
* *
*说明: CAN控制器退出复位工作模式 *
************************************************************************/
bit BCan_Quit_RstModel(void);
/************************************************************************
;*函数原型: bit BCan_Set_Bandrate(unsigned char CAN_ByteRate) *
;************************************************************************/
bit BCan_Set_BandRate(unsigned char CAN_ByteRate);
/************************************************************************
;*函数原型: bit BCan_Set_Object(unsigned char BCAN_ACR, *
unsigned char BCAN_AMR) *
*参数说明: *
* BCAN_ACR:存放验收代码寄存器(ACR)的参数设置 *
* BCAN_AMR:存放接收屏蔽寄存器(AMR)的参数设置 *
;*返回值: *
;* 0 ;通信对象设置成功 *
;* 1 ;通信对象设置失败 *
;* *
;*说明:设置CAN节点的通讯对象,允许接收的报文ID号的高8位(D10--D3) 。 *
;* 允许接收的报文,是由AMR和ACR共同决定的. *
;* 满足以下条件的ID号的报文才可以被接收 *
;*[(ID.10-ID.3)≡(AC.7-AC.0)]||(AM.7-AM.0)≡11111111 *
;* 该子程序只能用于复位模式 *
;************************************************************************/
bit BCan_Set_Object(unsigned char BCAN_ACR,unsigned char BCAN_AMR);
/************************************************************************
;*函数原型: bit BCan_Set_Outclk(unsigned char Out_Control, *
unsigned char Clock_Out); *
;*参数说明: *
* Out_Control:存放输出控制寄存器 (OC) 的参数设置 *
* Clock_Out:存放时钟分频寄存器 (CDR) 的参数设置 *
* *
;*返回值: *
;* 0 ;设置成功 *
;* 1 ;设置失败 *
;* *
;*说明:设置SJA1000的输出模式和时钟分频 。该子程序只能用于复位模式 *
;************************************************************************/
bit BCan_Set_Outclk(unsigned char Out_Control,
unsigned char Clock_Out);
/************************************************************************
*函数原型: bit BCan_Data_Send(unsigned char *SendDataBuf) *
*参数说明: 特定帧各式的数据 *
*返回值: *
* 0 ; 表示将数据成功的送至发送缓冲区 *
* 1 ; 表示上一次的数据正在发送, *
* ; 表示发送缓冲区被锁定,不能写入数据 *
* ; 表示写入数据错误 *
*说明: 将待发送特定帧各式的数据,送入SJA1000发送缓存区中,然后启动 *
* SJA1000发送。 *
* 特定帧格式为:开始的两个字节存放 '描述符' ,以后的为数据 *
* 描述符包括11位长的ID(标志符)\1位RTR\4位描述数据长度的DLC共16位 *
* *
*注:本函数的返回值仅指示,将数据正确写入SJA1000发送缓存区中与否。 *
* 不指示SJA1000将该数据正确发送到CAN总线上完毕与否 *
************************************************************************/
bit BCan_Data_Send(unsigned char *SendDataBuf);
/************************************************************************
*函数原型: bit BCan_Data_Recv(unsigned char *RcvDataBuf); *
*参数说明: RcvDataBuf,存放微处理器保存数据缓冲区 *
*返回值: 0;接收成功 *
* 1;接收失败 *
*说明: CAN控制器接收数据,仅限于接收数据 *
************************************************************************/
bit BCan_Data_Recv(unsigned char *RcvDataBuf, unsigned char *ucBufLen);
/************************************************************************
*函数原型: bit BCan_Cmd_Prg(unsigned char cmd) *
*参数说明: unsigned char cmd: sja1000运行的命令字 *
* 0x01: 发送请求 *
* 0x02:中止发送 *
* 0x04:释放接收缓冲区 *
* 0x08:清除超载状态 *
* 0x10: 进入睡眠状态 *
* *
*返回值: *
* 0 ; 表示命令执行成功 *
* 1 ; 表示命令执行失败 *
* *
*说明: 执行sja1000命令 *
************************************************************************/
bit BCan_Cmd_Prg(unsigned char cmd);
#endif /* BasicCAN */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -