?? sja1000func.h
字號:
/*
********************************************************************************************************************
*描述: 獨立的CAN 控制器SJA1000應用函數定義頭文件
*文件名: SJA1000FUNC.H
*應用語言: KEIL C51
*版本 : V1.01
*廣州周立功單片機發展有限公司 保留所有的版權
********************************************************************************************************************
*/
#ifndef _SJA1000FUNC_H
#define _SJA1000FUNC_H
#ifndef _GLOBAL_SJA1000FUNC_
#define GLOBAL_SJA1000FUNC extern
#else
#define GLOBAL_SJA1000FUNC
#endif
/*
********************************************************************************************************************
* 定義sja1000的公用函數(basicCAN | PeliCAN)模式
********************************************************************************************************************
*/
/*
************************************************************************************************************************
**函數原型: char SJATestInterface(unsigned char testvalue)
**參數說明: Value 測試值
**返回值:
** SJA_OK ; 表示SJA1000接口正常
** SJA_INTERFACE_ERR ; 表示SJA1000與處理器接口出錯
**
**說明: 該函數用于檢測CAN控制器的接口是否正常
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJATestInterface(unsigned char testvalue);
/*
************************************************************************************************************************
**函數原型: char SJAEntryResetMode(void)
**參數說明: 無
**返回值:
** SJA_OK ; 表示SJA1000進入復位模式成功
** SJA_ENTRYRESET_ERR ; 表示SJA1000進入復位模式失敗
**
**說明: 該函數用于使sja1000進入復位模式
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJAEntryResetMode(void);
/*
************************************************************************************************************************
**函數原型: char SJAQuitResetMode(void)
**參數說明: 無
**返回值:
** SJA_OK ; 表示SJA1000退出復位模式成功
** SJA_QUITRESET_ERR ; 表示SJA1000退出復位模式失敗
**
**說明: 該函數用于使sja1000退出復位模式,進入工作模式
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJAQuitResetMode(void);
/*
************************************************************************************************************************
**函數原型: char SetBitMask(unsigned char RegAdr,unsigned char BitValue)
**參數說明: RegAdr 要設置位的寄存器地址
** BitValue 要設置的值
**返回值:
** SJA_OK ; 表示設置值 成功
** SJA_INIT_ERR ; 表示設置值 失敗
**
**說明: 該函數用于置位sja1000某寄存器的某位
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SetBitMask(unsigned char RegAdr,unsigned char BitValue);
/*
************************************************************************************************************************
**函數原型: char ClearBitMask(unsigned char RegAdr,unsigned char BitValue)
**參數說明: RegAdr 要清除位的寄存器地址
** BitValue 要清除的值
**返回值:
** SJA_OK ; 表示位清除 成功
** SJA_INIT_ERR ; 表示位清除 失敗
**
**說明: 該函數用于清除sja1000某寄存器的某位
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char ClearBitMask(unsigned char RegAdr,unsigned char BitValue);
/*
************************************************************************************************************************
**函數原型: char SJATestRstMode(void)
**參數說明: 無
**返回值:
** 0 ; 表示SJA1000處于復位模式
** 1 ; 表示SJA1000處于工作模式
**
**說明: 該函數用于測試SJA1000 處于復位模式還是工作模式
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJATestRstMode(void);
/*
************************************************************************************************************************
**函數原型: 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 ;波特率不能設為此值
**
**說明: 該函數用于設定在系統晶體為16MHZ時,常用的標準波特率的值。
** 參數BandRateSize只能為0~14,其它的值會返回SJA_NOBTRSIZE錯誤
** 本函數只能用于復位模式
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJASetBandRateStandard(unsigned char BandRateSize);
/*
************************************************************************************************************************
**函數原型: char SJASystemPrgCMD(unsigned char cmd)
**參數說明: cmd SJA1000 的PeliCAN 工作方式命令字
**返回值:
** 0 ; 表示命令執行成功
** SJA_IMPCMD_ERR ; 表示命令執行出錯
** SJA_NOTHISCMD ; 沒有此命令
**
**說明: 該函數用于執行sja1000的命令
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJASystemPrgCMD(unsigned char cmd);
/*
************************************************************************************************************************
**函數原型: char SJASetClockDivision(unsigned char clockdiv)
**參數說明: clockdiv 時鐘分頻寄存器的設定值
**返回值:
** 0 ; 設置時鐘分頻寄存器成功
** SJA_SETCDR_ERR ; 設置時鐘分頻寄存器錯
** SJA_NOTRSTMODE ; sja1000不在復位模式
**
**說明: 該函數用于設定sja1000的時鐘分頻寄存器
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJASetClockDivision(unsigned char clockdiv);
/*
************************************************************************************************************************
**函數原型: char SJASetOutControl(unsigned char OutCtrl)
**參數說明: OutCtrl 輸出控制寄存器的設定值
**返回值:
** 0 ; 設置輸出控制寄存器成功
** SJA_SETOCR_ERR ; 設置輸出控制寄存器錯
** SJA_NOTRSTMODE ; sja1000不在復位模式
**
**說明: 該函數用于設定sja1000的輸出控制
************************************************************************************************************************
*/
GLOBAL_SJA1000FUNC char SJASetOutControl(unsigned char OutCtrl);
/*
************************************************************************************************************************
**函數原型: char SJAWriteDataToTxBuf(unsigned char *databuf,unsigned char len)
**
**參數說明: databuf 寫數據緩沖區首地址
** len 寫長度
**返回值:
** 0 ; 表示將數據成功的寫到到sja1000的發送緩沖區
** SJA_TXBUFLOCK ; sja1000發送緩沖區鎖定
**
** SJA_WTXBUF_ERR ; 表示寫數據失敗
**
**說明: 該函數用于將要發送到總線的特定幀格式的數據寫入sja1000的發送緩沖區
************************************************************************************************************************
GLOBAL_SJA1000FUNC char SJAWriteDataToTxBuf(unsigned char *databuf,unsigned char len);
/*
************************************************************************************************************************
**函數原型: char SJAReadDataFromRxBuf((unsigned char *databuf,unsigned char len)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -