?? can.h
字號(hào):
#ifndef _CAN_H
#define _CAN_H
//Basic_mode寄存器定義
#define SJA_BaseAdr 0x7f00 //SJA1000基址
//sja內(nèi)部寄存器
#define CONTROL_REG XBYTE[SJA_BaseAdr + 0x00] //控制寄存器
#define COMMAND_REG XBYTE[SJA_BaseAdr + 0x01] //命令寄存器
#define STATUS_REG XBYTE[SJA_BaseAdr + 0x02] //狀態(tài)寄存器
#define INTERRUPT_REG XBYTE[SJA_BaseAdr + 0x03] //中斷寄存器
#define ACR_REG XBYTE[SJA_BaseAdr + 0x04] //驗(yàn)收代碼寄存器
#define AMR_REG XBYTE[SJA_BaseAdr + 0x05] //驗(yàn)收屏蔽寄存器
#define BTR0_REG XBYTE[SJA_BaseAdr + 0x06] //總線定時(shí)寄存器0
#define BTR1_REG XBYTE[SJA_BaseAdr + 0x07] //總線定時(shí)寄存器1
#define OCR_REG XBYTE[SJA_BaseAdr + 0x08] //輸出控制寄存器
#define TEST_REG XBYTE[SJA_BaseAdr + 0x09] //測(cè)試寄存器
//發(fā)送緩沖區(qū)
#define Tx_ID_0_REG XBYTE[SJA_BaseAdr + 0x0a]
#define Tx_ID_1_REG XBYTE[SJA_BaseAdr + 0x0b]
#define Tx_Data_1_REG XBYTE[SJA_BaseAdr + 0x0c]
#define Tx_Data_2_REG XBYTE[SJA_BaseAdr + 0x0d]
#define Tx_Data_3_REG XBYTE[SJA_BaseAdr + 0x0e]
#define Tx_Data_4_REG XBYTE[SJA_BaseAdr + 0x0f]
#define Tx_Data_5_REG XBYTE[SJA_BaseAdr + 0x10]
#define Tx_Data_6_REG XBYTE[SJA_BaseAdr + 0x11]
#define Tx_Data_7_REG XBYTE[SJA_BaseAdr + 0x12]
#define Tx_Data_8_REG XBYTE[SJA_BaseAdr + 0x13]
//接收緩沖區(qū)
#define Rx_ID_0_REG XBYTE[SJA_BaseAdr + 0x14]
#define Rx_ID_1_REG XBYTE[SJA_BaseAdr + 0x15]
#define Rx_Data_1_REG XBYTE[SJA_BaseAdr + 0x16]
#define Rx_Data_2_REG XBYTE[SJA_BaseAdr + 0x17]
#define Rx_Data_3_REG XBYTE[SJA_BaseAdr + 0x18]
#define Rx_Data_4_REG XBYTE[SJA_BaseAdr + 0x19]
#define Rx_Data_5_REG XBYTE[SJA_BaseAdr + 0x1a]
#define Rx_Data_6_REG XBYTE[SJA_BaseAdr + 0x1b]
#define Rx_Data_7_REG XBYTE[SJA_BaseAdr + 0x1c]
#define Rx_Data_8_REG XBYTE[SJA_BaseAdr + 0x1d]
//時(shí)鐘分頻寄存器
#define CDR_REG XBYTE[SJA_BaseAdr + 0x1f]
//命令字定義
#define Release_Rx_buf 0x04
#define Tx_Request 0x01
#define Tx_ID_0 0x91
#define Tx_ID_1 0x08 //DLC = 3,NOT RTR
#endif
第31章 基于51單片機(jī)的CAN總線通信實(shí)例
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -