?? canfunc.h
字號(hào):
/****************************************Copyright (c)**************************************************
** 廣州周立功單片機(jī)發(fā)展有限公司
** 研 究 所
** 產(chǎn)品一部
** http://www.zlgmcu.com
**-----------------------------------------------------------文件信息--------------------------------------------------------------------------------
** 文 件 名: CANFUNC.H
** 版 本: v1.0
** 日 期: 2004年2月23日
** 描 述: CAN模塊功能操作函數(shù)定義頭文件
********************************************************************************************************/
#ifndef _CANFUNC_H_
#define _CANFUNC_H_
//函數(shù)、變量定位方式定義
#ifndef _CANFUNC_GLOBAL_
#define CANFUNC_GLOBAL extern
#else
#define CANFUNC_GLOBAL
#endif
//應(yīng)用常量定義
CANFUNC_GLOBAL const INT32U USE_LOM_CAN[CAN_MAX_NUM];
CANFUNC_GLOBAL const INT32U USE_EWL_CAN[CAN_MAX_NUM];
CANFUNC_GLOBAL const INT32U USE_INT_CAN[CAN_MAX_NUM];
CANFUNC_GLOBAL const INT32U USE_TPM_CAN[CAN_MAX_NUM];
CANFUNC_GLOBAL const INT32U USE_BTR_CAN[CAN_MAX_NUM];
CANFUNC_GLOBAL const INT32U USE_SLP_MOD_CAN[CAN_MAX_NUM];
/*
***********************************************************************************************************
**函數(shù)原型 : void HwRstCAN (eCANNUM CanNum)
**參數(shù)說明 : CanNum -->> CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值 : 無
**說 明 : 本函數(shù)用于硬件復(fù)位CAN控制器,主要是CAN模塊掉電,用于省電處理
************************************************************************************************************/
CANFUNC_GLOBAL void HwRstCAN(eCANNUM CanNum);
/*
***********************************************************************************************************
**函數(shù)原型 : void HwEnCAN (eCANNUM CanNum)
**參數(shù)說明 : CanNum -->> CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值 : 無
**說 明 : 本函數(shù)用于硬件使能CAN控制器
************************************************************************************************************/
CANFUNC_GLOBAL void HwEnCAN(eCANNUM CanNum);
/*
***********************************************************************************************************
**函數(shù)原型 : INT32U SoftRstCAN (eCANNUM CanNum)
**參數(shù)說明 : CanNum -->> CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值 : =0,表示復(fù)位成功; !=0,復(fù)位不成功;
**說 明 : 本函數(shù)用于軟件復(fù)位CAN控制器
************************************************************************************************************/
CANFUNC_GLOBAL INT32U SoftRstCAN(eCANNUM CanNum);
/*
***********************************************************************************************************
**函數(shù)原型 : INT32U SoftEnCAN (eCANNUM CanNum)
**參數(shù)說明 : CanNum -->> CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值 : =0,表示成功使CAN控制器進(jìn)入工作模式; !=0,不成功;
**說 明 : 本函數(shù)用于軟件使能CAN控制器
************************************************************************************************************/
CANFUNC_GLOBAL INT32U SoftEnCAN(eCANNUM CanNum);
/*
***********************************************************************************************************
**函數(shù)原型 : SetCANBaudRate (eCANNUM CanNum,INT32U Val)
**參數(shù)說明 : CanNum -->> CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
: Val -->> 總線定時(shí)器值
**返回值 : =0,表示成功使CAN控制器設(shè)置波特率; !=0,不成功;
**說 明 : 本函數(shù)用于設(shè)置CAN的波特率
************************************************************************************************************/
CANFUNC_GLOBAL INT32U SetCANBaudRate (eCANNUM CanNum,INT32U Val);
/*
***********************************************************************************************************
**函數(shù)原型 : SetErWarmVal (eCANNUM CanNum)
**參數(shù)說明 : CanNum -->> CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
** : Val -->> 錯(cuò)誤警告寄存器的設(shè)定值
**返回值 : =0,表示成功使CAN控制器錯(cuò)誤警告寄存器; !=0,不成功;
**說 明 : 本函數(shù)用于設(shè)置CAN的錯(cuò)誤警告寄存器(只有在RM = 1時(shí)才可寫入)
************************************************************************************************************/
INT32U SetErWarmVal (const eCANNUM CanNum, INT32U Val);
/*
***********************************************************************************************************
**函數(shù)原型 : SetTPMMOD (eCANNUM CanNum)
**參數(shù)說明 : CanNum -->> CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
** : Val -->> 0:各自的CAN ID決定;1:由發(fā)送緩沖區(qū)的優(yōu)先級(jí)域決定
**返回值 : =0,表示成功設(shè)置CAN的發(fā)送優(yōu)先級(jí)模式位; !=0,不成功;
**說 明 : 本函數(shù)用于設(shè)置CAN的發(fā)送優(yōu)先級(jí)模式
************************************************************************************************************/
INT32U SetTPMMOD (eCANNUM CanNum, INT32U Val);
/*
***********************************************************************************************************
**函數(shù)原型 : INT32U SetLOMMOD (eCANNUM CanNum)
**參數(shù)說明 : CanNum -->> CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
** : Val -->> 只聽模式選擇 0;正常,1:只聽
**返回值 : =0,表示成功設(shè)置CAN的只聽模式; !=0,不成功;
**說 明 : 本函數(shù)用于設(shè)置CAN只聽模式(只有在RM = 1時(shí)才可寫入)
************************************************************************************************************/
INT32U SetLOMMOD (eCANNUM CanNum, INT32U Val);
/*
***********************************************************************************************************
**函數(shù)原型 : void CanSendCmd(eCANNUM CanNum,INT32U Cmd,INT32U TxBuf)
**參數(shù)說明 : CanNum -->> CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
Cmd -->> 發(fā)送命令字:1--單次發(fā)送,2--自發(fā)自收,3--單次自發(fā)自收,0--正常發(fā)送
TxBuf -->> 選擇發(fā)送緩沖區(qū)
**返回值 :
**說 明 : 本函數(shù)用于發(fā)送命令處理
************************************************************************************************************/
#define NOM 0
#define SIG 1
#define SLF 2
#define SSR 3
#define TX_BUF1 1
#define TX_BUF2 2
#define TX_BUF3 4
CANFUNC_GLOBAL void CanSendCmd(eCANNUM CanNum,INT32U Cmd,INT32U TxBufNum);
/*
***********************************************************************************************************
**函數(shù)原型 : void RelCanRecBuf(eCANNUM CanNum)
**參數(shù)說明 : CanNum -->> CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值 :
**說 明 : 本函數(shù)用于釋放接收緩沖區(qū)
************************************************************************************************************/
CANFUNC_GLOBAL void RelCanRecBuf(eCANNUM CanNum);
/*
***********************************************************************************************************
**函數(shù)原型 : void ClrCanDataOver(eCANNUM CanNum)
**參數(shù)說明 : CanNum -->> CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值 :
**說 明 : 本函數(shù)用于清除數(shù)據(jù)溢出
************************************************************************************************************/
CANFUNC_GLOBAL void ClrCanDataOver(eCANNUM CanNum);
/*
***********************************************************************************************************
**函數(shù)原型 : INT32U CanEntrySM(CanNum)
**參數(shù)說明 : CanNum -->> CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值 : =0;成功進(jìn)入睡眠狀態(tài);
!=0;不能進(jìn)入睡眠狀態(tài);
**說 明 : 本函數(shù)用于使CAN控制器進(jìn)入休眠模式
***********************************************************************************************************
*/
CANFUNC_GLOBAL INT32U CanEntrySM(eCANNUM CanNum);
/*
***********************************************************************************************************
**函數(shù)原型 : INT32U CanQuitSM(eCANNUM CanNum)
**參數(shù)說明 : CanNum -->> CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值 : =0;成功退出睡眠狀態(tài);
!=0;不能退出睡眠狀態(tài);
**說 明 : 本函數(shù)用于使CAN控制器退出休眠模式
***********************************************************************************************************
*/
CANFUNC_GLOBAL INT32U CanQuitSM(eCANNUM CanNum);
/*
***********************************************************************************************************
**函數(shù)原型 : 宏定義函數(shù) CanBufOffLinePrg(CanNum)
**參數(shù)說明 : CanNum -->> CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值 : 無
**說 明 : 本函數(shù)用于CAN控制器出現(xiàn)總線關(guān)閉錯(cuò)誤處理
***********************************************************************************************************
*/
#define CanBufOffLinePrg(CanNum) if(CANMOD(CanNum).Bits.RM != 0) \
{ \
CANGSR(CanNum).Word=0; \
CANMOD(CanNum).Bits.RM=0x00; \
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -