?? 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 + -