?? sja1000.h
字號:
/*定義SJA1000的基地址*/
/*模式和控制寄存器的地址和位定義*/
/************************************************************************
*SJA1000與微處理器的接口是以外部存儲器的方式,所以以下的基址定義,用戶 *
*應根據自己的實際電路來進行調整 *
************************************************************************/
/************************************************************************
* 以下的定義為SJA1000的內部寄存器的地址,不可修改 *
* 各寄存器的具體功能清參閱sja1000的數據手冊 *
************************************************************************/
#define REG_CONTROL 0x00 //內部控制寄存器
#define REG_COMMAND 0x01 //命令寄存器
#define REG_STATUS 0x02 //狀態寄存器
#define REG_INTERRUPT 0x03 //中斷寄存器
#define REG_ACR 0x04 //驗收代碼寄存器
#define REG_AMR 0x05 //驗收屏蔽寄存器
#define REG_BTR0 0x06 //總線定時寄存器0
#define REG_BTR1 0x07 //總線定時寄存器1
#define REG_OCR 0x08 //輸出控制寄存器
#define REG_TEST 0x09 //測試寄存器
//以下為發送緩沖區寄存器定義
#define REG_TxBuffer1 0x0A //發送緩沖區1
#define REG_TxBuffer2 0x0B //發送緩沖區2
#define REG_TxBuffer3 0x0C //發送緩沖區3
#define REG_TxBuffer4 0x0D //發送緩沖區4
#define REG_TxBuffer5 0x0E //發送緩沖區5
#define REG_TxBuffer6 0x0F //發送緩沖區6
#define REG_TxBuffer7 0x10 //發送緩沖區7
#define REG_TxBuffer8 0x11 //發送緩沖區8
#define REG_TxBuffer9 0x12 //發送緩沖區9
#define REG_TxBuffer10 0x13 //發送緩沖區10
//以下為接收緩沖區寄存器定義
#define REG_RxBuffer1 0x14 //接收緩沖區1
#define REG_RxBuffer2 0x15 //接收緩沖區2
#define REG_RxBuffer3 0x16 //接收緩沖區3
#define REG_RxBuffer4 0x17 //接收緩沖區4
#define REG_RxBuffer5 0x18 //接收緩沖區5
#define REG_RxBuffer6 0x19 //接收緩沖區6
#define REG_RxBuffer7 0x1A //接收緩沖區7
#define REG_RxBuffer8 0x1B //接收緩沖區8
#define REG_RxBuffer9 0x1C //接收緩沖區9
#define REG_RxBuffer10 0x1D //接收緩沖區10
/************************************************************************
*時鐘分頻寄存器(內部地址01FH) *
************************************************************************/
#define REG_CDR 0x1F //時鐘分頻寄存器
/************************************************************************
*定義指針 *
************************************************************************/
//unsigned char xdata *SJA_BCANAdr;
/************************************************************************
*定義命令字 *
************************************************************************/
#define TR_CMD 0x01 //發送請求命令
#define AT_CMD 0x02 //夭折發送命令
#define RRB_CMD 0x04 //釋放接收緩沖區
#define COS_CMD 0x08 //清除超載狀態
#define GTS_CMD 0x10 //進入睡眠狀態命令
/************************************************************************
*定義12M的晶體下,CAN總線波特率 *
************************************************************************/
#define ByteRate_20k 0x00 //波特率20kbps
#define ByteRate_40k 0x01 //波特率40kbps
#define ByteRate_50k 0x02 //波特率50kbps
#define ByteRate_80k 0x03 //波特率80kbps
#define ByteRate_100k 0x04 //波特率100kbps
#define ByteRate_125k 0x05 //波特率125kbps
#define ByteRate_200k 0x06 //波特率200kbps
#define ByteRate_250k 0x07 //波特率250kbps
#define ByteRate_400k 0x08 //波特率400kbps
#define ByteRate_500k 0x09 //波特率500kbps
#define ByteRate_666k 0x0a //波特率666kbps
#define ByteRate_800k 0x0b //波特率800kbps
#define ByteRate_1000k 0x0c //波特率1000kbps
/*-------------------------------------------------------------------------------------------
* 以下為BASICCAN SJA1000的錯誤字 *
-------------------------------------------------------------------------------------------*/
#define CAN_INTERFACE_0K 0 /*SJA1000接口正常 */
#define CAN_BUS_0K 0 /*CAN總線工作正常 */
#define CAN_INTERFACE_ERR 0XFF /*SJA1000接口錯誤? */
#define CAN_ENTRESET_ERR 0XFE /*SJA1000不能進入復位模式 */
#define CAN_QUITRESET_ERR 0XFD /*SJA1000不能退出復位模式 */
#define CAN_INITOBJECT_ERR 0XFC /*初始化報文驗收濾波器錯 */
#define CAN_INITBTR_ERR 0XFB /*初始化總線定時器器錯 */
#define CAN_INITOUTCTL_ERR 0XFA /*初始化輸出控制錯誤 */
#define CAN_INTCLKDIV_ERR 0XF9 /*初始化時鐘分頻控制器錯 */
#define CAN_BUS_ERR 0XF8 /*SJA1000發送數據錯 */
#define NO_BANDRATE_SIZE 0xe7
/* chip select*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -