📄 can591func.h
字号:
/*
********************************************************************************************************************
*描述: P8XC591CAN应用函数定义头文件
*文件名: CAN591FUNC.H
*应用语言: KEIL C51
*版本 : V1.0
*广州周立功单片机发展有限公司 保留所有的版权
********************************************************************************************************************
*/
#ifndef _CAN591FUNC_H
#define _CAN591FUNC_H
#ifndef _GLOBAL_CAN591FUNC_
#define GLOBAL_CAN591FUNC extern
#else
#define GLOBAL_CAN591FUNC
#endif
/*
********************************************************************************************************************
* 定义591的公用函数(PeliCAN)模式
********************************************************************************************************************
*/
/*
************************************************************************************************************************
**函数原型: char SJAEntryResetMode(void)
**参数说明: 无
**返回值:
** SJA_OK ; 表示CAN591进入复位模式成功
** SJA_ENTRYRESET_ERR ; 表示CAN591进入复位模式失败
**
**说明: 该函数用于使591进入复位模式
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char SJAEntryResetMode(void);
/*
************************************************************************************************************************
**函数原型: char SJAQuitResetMode(void)
**参数说明: 无
**返回值:
** SJA_OK ; 表示CAN591退出复位模式成功
** SJA_QUITRESET_ERR ; 表示CAN591退出复位模式失败
**
**说明: 该函数用于使591退出复位模式,进入工作模式
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char SJAQuitResetMode(void);
/*
************************************************************************************************************************
**函数原型: char SetBitMask(unsigned char RegAdr,unsigned char BitValue)
**参数说明: RegAdr 要设置位的寄存器地址
** BitValue 要设置的值
**返回值:
** SJA_OK ; 表示设置值 成功
** SJA_INIT_ERR ; 表示设置值 失败
**
**说明: 该函数用于置位591某寄存器的某位
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char SetBitMask(unsigned char RegAdr,unsigned char BitValue);
/*
************************************************************************************************************************
**函数原型: char ClearBitMask(unsigned char RegAdr,unsigned char BitValue)
**参数说明: RegAdr 要清除位的寄存器地址
** BitValue 要清除的值
**返回值:
** SJA_OK ; 表示位清除 成功
** SJA_INIT_ERR ; 表示位清除 失败
**
**说明: 该函数用于清除591某寄存器的某位
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char ClearBitMask(unsigned char RegAdr,unsigned char BitValue);
/*
************************************************************************************************************************
**函数原型: char SJATestRstMode(void)
**参数说明: 无
**返回值:
** 0 ; 表示CAN591处于复位模式
** 1 ; 表示CAN591处于工作模式
**
**说明: 该函数用于测试CAN591 处于复位模式还是工作模式
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char SJATestRstMode(void);
/*
************************************************************************************************************************
**函数原型: char SJASetCanIne(unsigned char canint)
**参数说明: canint 设置中断使能值
**返回值:
** 0 ; 设置中断使能寄存器成功
** SJA_SETIER_ERR ; 设置中断使能寄存器失败
**
**说明: 该函数用于591的CAN中断使能设置
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char SJASetCanIER(unsigned char canint);
/*
************************************************************************************************************************
**函数原型: char SJASetAccMode(unsigned char accmode)
**参数说明: accmode 代码验收滤波器工作模式
**返回值:
** 0 ; 设置代码验收滤波器工作模式寄存器成功
** SJA_SETACRMODE_ERR ; 设置代码验收滤波器工作模式寄存器错误
**
**说明: 该函数用于设置591代码验收滤波器工作模式
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char SJASetAccMode(unsigned char accmode);
/*
************************************************************************************************************************
**函数原型: char SJASetAccPrio(unsigned char accprio)
**参数说明: accprio 代码验收滤波器优先级
**返回值:
** 0 ; 设置代码验收滤波器优先级寄存器成功
** SJA_SETACRPRIO_ERR ; 设置代码验收滤波器优先级寄存器错
**
**说明: 该函数用于设置591代码验收滤波器优先级
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char SJASetAccPrio(unsigned char accprio);
/*
************************************************************************************************************************
**函数原型: char SJASetAccEN(unsigned char accEN)
**参数说明: accEN 代码验收滤波器使能
**返回值:
** 0 ; 设置代码验收滤波器使能寄存器成功
** SJA_SETACREN_ERR ; 设置代码验收滤波器使能寄存器错
**
**说明: 该函数用于设置591代码验收滤波器使能
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char SJASetAccEN(unsigned char accEN);
/*
************************************************************************************************************************
**函数原型: char SJASetAccCode(unsigned char ACF_NUM ,unsigned char acr0,unsigned char acr1,
** unsigned char acr2,unsigned char acr3
** )
**参数说明: ACF_NUM 代码验收报文滤波寄存器的组号
** acr0 0的设定值
** acr1 代码验收寄存器1的设定值
** acr2 代码验收寄存器2的设定值
** acr3 代码验收寄存器3的设定值
**返回值:
** 0 ; 设置代码验收寄存器成功
** SJA_SETACR_ERR ; 设置代码验收寄存器错
** SJA_NOTRSTMODE ; 591不在复位模式
**
**说明: 该函数用于设定报文滤波的代码验收滤波器
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char SJASetAccCode( unsigned char ACF_NUM , unsigned char acr0,unsigned char acr1,
unsigned char acr2,unsigned char acr3
);
/*
************************************************************************************************************************
**函数原型: char SJASetAccMask(unsigned char ACF_NUM , unsigned char amr0,unsigned char amr1,
** unsigned char amr2,unsigned char amr3
** )
**参数说明: ACF_NUM 代码验收屏蔽寄存器的组号
** amr0 验收屏蔽寄存器0的设定值
** amr1 验收屏蔽寄存器1的设定值
** amr2 验收屏蔽寄存器2的设定值
** amr3 验收屏蔽寄存器3的设定值
**返回值:
** 0 ; 设置验收屏蔽寄存器成功
** SJA_SETAMR_ERR ; 设置验收屏蔽寄存器错
** SJA_NOTRSTMODE ; 591不在复位模式
**
**说明: 该函数用于设定报文滤波的验收屏蔽寄存器
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char SJASetAccMask( unsigned char ACF_NUM , unsigned char amr0,unsigned char amr1,
unsigned char amr2,unsigned char amr3
);
/*
************************************************************************************************************************
**函数原型: char SJASetBandRateStandard(unsigned char BandRateSize)
**参数说明: BandRateSize 标准常用波特率(Kbps)
** 0 5
** 1 10
** 2 20
** 3 40
** 4 50
** 5 80
** 6 100
** 7 125
** 8 200
** 9 250
** 10 400
** 11 500
** 12 666
** 13 800
** 14 1000
**返回值:
** 0 ; 设置总线定时器成功
** SJA_SETBTR_ERR ; 设置总线定时器错
** SJA_NOBTRSIZE ;波特率不能设为此值
**
**说明: 该函数用于设定在系统晶体为12MHZ时,常用的标准波特率的值。
** 参数BandRateSize只能为0~14,其它的值会返回SJA_NOBTRSIZE错误
** 本函数只能用于复位模式
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char SJASetBandRateStandard(unsigned char BandRateSize);
/*
************************************************************************************************************************
**函数原型: char SJASystemPrgCMD(unsigned char cmd)
**参数说明: cmd CAN591 的PeliCAN 工作方式命令字
**返回值:
** 0 ; 表示命令执行成功
** SJA_IMPCMD_ERR ; 表示命令执行出错
** SJA_NOTHISCMD ; 没有此命令
**
**说明: 该函数用于执行591的命令
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char SJASystemPrgCMD(unsigned char cmd);
/*
************************************************************************************************************************
**函数原型: char SJASendData(unsigned char *databuf,
** unsigned char cmd
** )
**参数说明: databuf 存放要发送到总线的特定帧格式的数据的缓冲区首地址
** info 591帧格式类型的结构变量
**返回值:
** 0 ; 表示将数据成功的发送到can总线
** SJA_TXBUFLOCK ; 591发送缓冲区锁定
** SJA_WTXBUF_ERR ; 表示写发送缓冲区失败
** SJA_IMPCMD_ERR ; 表示命令执行出错
**
**说明: 本函数用于向can总线发送数据
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char SJASendData(unsigned char *databuf,
unsigned char cmd
);
/*
************************************************************************************************************************
**函数原型: char SJARcvData(unsigned char *databuf,
** )
**参数说明: databuf 存放要接收数据缓冲区首地址
**
**返回值:
** 0 ; 表示将读取数据成功
** SJA_RXBUFEMPTY ; 591接收缓冲区为空
** SJA_RRXVUF_ERR ; 591接收数据错
**
**说明: 本函数用于接收can总线数据
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC char SJARcvData(unsigned char *databuf
);
/*
************************************************************************************************************************
**函数原型: unsigned char ReadALCReg(void)
**参数说明: 无
**返回值: 错误仲裁寄存器(alc)的内容
**
**说明: 该函数用于读取错误仲裁寄存器(alc)的内容
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC unsigned char ReadALCReg(void);
/*
************************************************************************************************************************
**函数原型: unsigned char ReadECCReg(void)
**参数说明: 无
**返回值: 错误捕捉寄存器(ecc)的内容
**
**说明: 该函数用于读取错误捕捉寄存器(ecc)的内容
************************************************************************************************************************
*/
GLOBAL_CAN591FUNC unsigned char ReadECCReg(void);
/*
********************************************************************************************************************
* CAN591FUNC定义结束
********************************************************************************************************************
*/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -