⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 can591func.h

📁 can总线通信的以C51庫文件
💻 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 + -