📄 sja100~2.h
字号:
/*
********************************************************************************************************************
*描述: 独立的CAN 控制器SJA1000应用函数定义头文件
*文件名: SJA1000FUNC.H
*应用语言: KEIL C51
*版本 : V1.01
*广州周立功单片机发展有限公司 保留所有的版权
********************************************************************************************************************
*/
#ifndef _SJA1000FUNC_H
#define _SJA1000FUNC_H
#ifndef _GLOBAL_SJA1000FUNC_
#define GLOBAL_SJA1000FUNC extern
#else
#define GLOBAL_SJA1000FUNC
#endif
/*
********************************************************************************************************************
* 定义sja1000的公用函数(basicCAN | PeliCAN)模式
********************************************************************************************************************
*/
/*
************************************************************************************************************************
**函数原型: char SJATestInterface(unsigned char testvalue)
**参数说明: Value 测试值
**返回值:
** SJA_OK ; 表示SJA1000接口正常
** SJA_INTERFACE_ERR ; 表示SJA1000与处理器接口出错
**
**说明: 该函数用于检测CAN控制器的接口是否正常
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJATestInterface(unsigned char testvalue);
/*
************************************************************************************************************************
**函数原型: char SJAEntryResetMode(void)
**参数说明: 无
**返回值:
** SJA_OK ; 表示SJA1000进入复位模式成功
** SJA_ENTRYRESET_ERR ; 表示SJA1000进入复位模式失败
**
**说明: 该函数用于使sja1000进入复位模式
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJAEntryResetMode(void);
/*
************************************************************************************************************************
**函数原型: char SJAQuitResetMode(void)
**参数说明: 无
**返回值:
** SJA_OK ; 表示SJA1000退出复位模式成功
** SJA_QUITRESET_ERR ; 表示SJA1000退出复位模式失败
**
**说明: 该函数用于使sja1000退出复位模式,进入工作模式
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJAQuitResetMode(void);
/*
************************************************************************************************************************
**函数原型: char SetBitMask(unsigned char RegAdr,unsigned char BitValue)
**参数说明: RegAdr 要设置位的寄存器地址
** BitValue 要设置的值
**返回值:
** SJA_OK ; 表示设置值 成功
** SJA_INIT_ERR ; 表示设置值 失败
**
**说明: 该函数用于置位sja1000某寄存器的某位
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SetBitMask(unsigned char RegAdr,unsigned char BitValue);
/*
************************************************************************************************************************
**函数原型: char ClearBitMask(unsigned char RegAdr,unsigned char BitValue)
**参数说明: RegAdr 要清除位的寄存器地址
** BitValue 要清除的值
**返回值:
** SJA_OK ; 表示位清除 成功
** SJA_INIT_ERR ; 表示位清除 失败
**
**说明: 该函数用于清除sja1000某寄存器的某位
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char ClearBitMask(unsigned char RegAdr,unsigned char BitValue);
/*
************************************************************************************************************************
**函数原型: char SJATestRstMode(void)
**参数说明: 无
**返回值:
** 0 ; 表示SJA1000处于复位模式
** 1 ; 表示SJA1000处于工作模式
**
**说明: 该函数用于测试SJA1000 处于复位模式还是工作模式
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJATestRstMode(void);
/*
************************************************************************************************************************
**函数原型: 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 ;波特率不能设为此值
**
**说明: 该函数用于设定在系统晶体为16MHZ时,常用的标准波特率的值。
** 参数BandRateSize只能为0~14,其它的值会返回SJA_NOBTRSIZE错误
** 本函数只能用于复位模式
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJASetBandRateStandard(unsigned char BandRateSize);
/*
************************************************************************************************************************
**函数原型: char SJASystemPrgCMD(unsigned char cmd)
**参数说明: cmd SJA1000 的PeliCAN 工作方式命令字
**返回值:
** 0 ; 表示命令执行成功
** SJA_IMPCMD_ERR ; 表示命令执行出错
** SJA_NOTHISCMD ; 没有此命令
**
**说明: 该函数用于执行sja1000的命令
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJASystemPrgCMD(unsigned char cmd);
/*
************************************************************************************************************************
**函数原型: char SJASetClockDivision(unsigned char clockdiv)
**参数说明: clockdiv 时钟分频寄存器的设定值
**返回值:
** 0 ; 设置时钟分频寄存器成功
** SJA_SETCDR_ERR ; 设置时钟分频寄存器错
** SJA_NOTRSTMODE ; sja1000不在复位模式
**
**说明: 该函数用于设定sja1000的时钟分频寄存器
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJASetClockDivision(unsigned char clockdiv);
/*
************************************************************************************************************************
**函数原型: char SJASetOutControl(unsigned char OutCtrl)
**参数说明: OutCtrl 输出控制寄存器的设定值
**返回值:
** 0 ; 设置输出控制寄存器成功
** SJA_SETOCR_ERR ; 设置输出控制寄存器错
** SJA_NOTRSTMODE ; sja1000不在复位模式
**
**说明: 该函数用于设定sja1000的输出控制
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJASetOutControl(unsigned char OutCtrl);
/*
************************************************************************************************************************
**函数原型: char SJAWriteDataToTxBuf(unsigned char *databuf,unsigned char len)
**
**参数说明: databuf 写数据缓冲区首地址
** len 写长度
**返回值:
** 0 ; 表示将数据成功的写到到sja1000的发送缓冲区
** SJA_TXBUFLOCK ; sja1000发送缓冲区锁定
**
** SJA_WTXBUF_ERR ; 表示写数据失败
**
**说明: 该函数用于将要发送到总线的特定帧格式的数据写入sja1000的发送缓冲区
************************************************************************************************************************
GLOBAL_SJA1000FUNC char SJAWriteDataToTxBuf(unsigned char *databuf,unsigned char len);
/*
************************************************************************************************************************
**函数原型: char SJAReadDataFromRxBuf((unsigned char *databuf,unsigned char len)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -