📄 canfunc.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 + -