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

📄 canfunc.h

📁 基于ARM及CAN总线的源码
💻 H
字号:
/****************************************Copyright (c)**************************************************
**                               广州周立功单片机发展有限公司
**                                     研    究    所
**                                        产品一部 
**                                 http://www.zlgmcu.com
**-----------------------------------------------------------文件信息--------------------------------------------------------------------------------
**	文   件  	名:	CANFUNC.H
** 	版  		本:	v1.0
** 	日		期:	2004年2月23日
**	描		述:	CAN模块功能操作函数定义头文件
********************************************************************************************************/
#ifndef	_CANFUNC_H_
#define	_CANFUNC_H_
//函数、变量定位方式定义
#ifndef		_CANFUNC_GLOBAL_
#define		CANFUNC_GLOBAL		extern
#else
#define		CANFUNC_GLOBAL	
#endif
/*
***********************************************************************************************************
**函数原型	:  	void	HwRstCAN (eCANNUM CanNum)
**参数说明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 规定的值
**返回值		:	无	
**说	明		:	本函数用于硬件复位CAN控制器,主要是CAN模块掉电,用于省电处理
************************************************************************************************************/
CANFUNC_GLOBAL	void		HwRstCAN(eCANNUM CanNum);
/*
***********************************************************************************************************
**函数原型	:  	void	HwEnCAN (eCANNUM CanNum)
**参数说明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 规定的值
**返回值		:	无	
**说	明		:	本函数用于硬件使能CAN控制器
************************************************************************************************************/
CANFUNC_GLOBAL	void		HwEnCAN(eCANNUM CanNum);

/*
***********************************************************************************************************
**函数原型	:  	UINT32	SoftRstCAN (eCANNUM CanNum)
**参数说明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 规定的值
**返回值		:	=0,表示复位成功; !=0,复位不成功;	
**说	明		:	本函数用于软件复位CAN控制器
************************************************************************************************************/
CANFUNC_GLOBAL	UINT32		SoftRstCAN(eCANNUM CanNum);
/*
***********************************************************************************************************
**函数原型	:  	UINT32	SoftEnCAN (eCANNUM CanNum)
**参数说明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 规定的值
**返回值		:	=0,表示成功使CAN控制器进入工作模式; !=0,不成功;	
**说	明		:	本函数用于软件使能CAN控制器
************************************************************************************************************/
CANFUNC_GLOBAL	UINT32		SoftEnCAN(eCANNUM CanNum);
/*
***********************************************************************************************************
**函数原型	:  	void	CanSendCmd(eCANNUM CanNum,UINT32 Cmd,UINT32 TxBuf)
**参数说明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 规定的值
				Cmd			à> 发送命令字
				TxBuf		à>	选择发送缓冲区
**返回值		:		
**说	明		:	本函数用于发送命令处理
************************************************************************************************************/
#define	NOM_SEND_CMD	0
#define	SIG_SEND_CMD	1
#define	SLF_SEND_CMD	2
#define	SSR_SEND_CMD	3
#define	SEND_TX_BUF1	1
#define	SEND_TX_BUF2	2
#define	SEND_TX_BUF3	4
CANFUNC_GLOBAL	void	CanSendCmd(eCANNUM CanNum,UINT32 Cmd,UINT32 TxBuf);
/*
***********************************************************************************************************
**函数原型	:  	宏定义函数	RelCanRecBuf(CanNum)
**参数说明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 规定的值
**返回值		:		
**说	明		:	本函数用于释放接收缓冲区
************************************************************************************************************/
#define	RelCanRecBuf(CanNum)	CANCMR(CanNum).Bits.RRB_BIT=1
/*
***********************************************************************************************************
**函数原型	:  	宏定义函数	ClrCanDataOver (CanNum)
**参数说明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 规定的值
**返回值		:		
**说	明		:	本函数用于释放接收缓冲区
************************************************************************************************************/
#define	ClrCanDataOver(CanNum)	CANCMR(CanNum).Bits.CDO_BIT=1

/*
***********************************************************************************************************
**函数原型	:  	宏定义函数 CanBufOffLinePrg(CanNum)
**参数说明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 规定的值
**返回值		:	无	
**说	明		:	本函数用于CAN控制器出现总线关闭错误处理
***********************************************************************************************************
*/
#define	CanBufOffLinePrg(CanNum)	if(CANMOD(CanNum).Bits.RM_BIT != 0)		\
		{															\
			CANGSR(CanNum).Word=0;									\
			CANMOD(CanNum).Bits.RM_BIT=0x00;							\
			CANCMR(CanNum).Word=0x02;									\
		}	
/*
***********************************************************************************************************
**函数原型	:  	UINT32 CanEntrySM(CanNum)
**参数说明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 规定的值
**返回值		:	=0;成功进入睡眠状态;
				!=0;不能进入睡眠状态;	
**说	明		:	本函数用于使CAN控制器进入休眠模式
***********************************************************************************************************
*/
CANFUNC_GLOBAL	UINT32	CanEntrySM(eCANNUM	CanNum);
/*
***********************************************************************************************************
**函数原型	:  	UINT32 CanQuitSM(eCANNUM	CanNum)
**参数说明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 规定的值
**返回值		:	=0;成功退出睡眠状态;
				!=0;不能退出睡眠状态;	
**说	明		:	本函数用于使CAN控制器退出休眠模式
***********************************************************************************************************
*/
CANFUNC_GLOBAL	UINT32 CanQuitSM(eCANNUM	CanNum);	
/*
***********************************************************************************************************
**函数原型	:  	UINT32	WriteCanTxBuf(eCANNUM CanNum,UINT32 TxBufNum,
										UINT32 TPM,P_stcTxBUF Buf) ;
**参数说明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 规定的值
				TxBufNum		à>	选择发送缓冲区
				TPM			à>	发送优先级模式
				Buf			à>	发送到总线的数据
**返回值		:	=0;成功将数据写入发送缓冲区
				!=0;写发送缓冲区操作失败	
**说	明		:	本函数用于向CAN发送缓冲区TxBUF写入发送数据
***********************************************************************************************************
*/
CANFUNC_GLOBAL	UINT32	WriteCanTxBuf(eCANNUM CanNum,UINT32 TxBufNum,
										UINT32 TPM,P_stcTxBUF Buf) ;
/*
***********************************************************************************************************
**函数原型	:  	void	ReadCanRxBuf(eCANNUM CanNum,P_stcRxBUF Buf)
**参数说明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 规定的值
				Buf			à>	接收CAN总线数据
**返回值		:	
**说	明		:	本函数用于从CAN控制器RxBuf中读取数据
***********************************************************************************************************
*/
CANFUNC_GLOBAL	void	ReadCanRxBuf(eCANNUM CanNum,P_stcRxBUF Buf);

#endif
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -