📄 sja_bcanconf.h
字号:
#ifndef BasicCAN
#define BasicCAN
/************************************************************************
*SJA1000与微处理器的接口是以外部存储器的方式,所以以下的基址定义,用户 *
*应根据自己的实际电路来进行调整 *
************************************************************************/
#define SJA_BaseAdr 0x7e00 //定义sja1000的片选基址
//计算SJA1000在电路中的实际地址:基址+内部寄存器地址
/************************************************************************
* 以下的定义为SJA1000的内部寄存器的地址,不可修改 *
* 各寄存器的具体功能清参阅sja1000的数据手册 *
************************************************************************/
#define REG_CONTROL SJA_BaseAdr+0x00 //内部控制寄存器
#define REG_COMMAND SJA_BaseAdr+0x01 //命令寄存器
#define REG_STATUS SJA_BaseAdr+0x02 //状态寄存器
#define REG_INTERRUPT SJA_BaseAdr+0x03 //中断寄存器
#define REG_ACR SJA_BaseAdr+0x04 //验收代码寄存器
#define REG_AMR SJA_BaseAdr+0x05 //验收屏蔽寄存器
#define REG_BTR0 SJA_BaseAdr+0x06 //总线定时寄存器0
#define REG_BTR1 SJA_BaseAdr+0x07 //总线定时寄存器1
#define REG_OCR SJA_BaseAdr+0x08 //输出控制寄存器
#define REG_TEST SJA_BaseAdr+0x09 //测试寄存器
//以下为发送缓冲区寄存器定义
#define REG_TxBuffer1 SJA_BaseAdr+0x0A //发送缓冲区1
#define REG_TxBuffer2 SJA_BaseAdr+0x0B //发送缓冲区2
#define REG_TxBuffer3 SJA_BaseAdr+0x0C //发送缓冲区3
#define REG_TxBuffer4 SJA_BaseAdr+0x0D //发送缓冲区4
#define REG_TxBuffer5 SJA_BaseAdr+0x0E //发送缓冲区5
#define REG_TxBuffer6 SJA_BaseAdr+0x0F //发送缓冲区6
#define REG_TxBuffer7 SJA_BaseAdr+0x10 //发送缓冲区7
#define REG_TxBuffer8 SJA_BaseAdr+0x11 //发送缓冲区8
#define REG_TxBuffer9 SJA_BaseAdr+0x12 //发送缓冲区9
#define REG_TxBuffer10 SJA_BaseAdr+0x13 //发送缓冲区10
//以下为接收缓冲区寄存器定义
#define REG_RxBuffer1 SJA_BaseAdr+0x14 //接收缓冲区1
#define REG_RxBuffer2 SJA_BaseAdr+0x15 //接收缓冲区2
#define REG_RxBuffer3 SJA_BaseAdr+0x16 //接收缓冲区3
#define REG_RxBuffer4 SJA_BaseAdr+0x17 //接收缓冲区4
#define REG_RxBuffer5 SJA_BaseAdr+0x18 //接收缓冲区5
#define REG_RxBuffer6 SJA_BaseAdr+0x19 //接收缓冲区6
#define REG_RxBuffer7 SJA_BaseAdr+0x1A //接收缓冲区7
#define REG_RxBuffer8 SJA_BaseAdr+0x1B //接收缓冲区8
#define REG_RxBuffer9 SJA_BaseAdr+0x1C //接收缓冲区9
#define REG_RxBuffer10 SJA_BaseAdr+0x1D //接收缓冲区10
/************************************************************************
*内部地址 01EH 备用 *
************************************************************************/
/************************************************************************
*时钟分频寄存器(内部地址01FH) *
************************************************************************/
#define REG_CDR SJA_BaseAdr+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 //进入睡眠状态命令
/*-------------------------------------------------------------------------------------------
* 以下为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
/************************************************************************
*以下为基本的函数说明(BasicCAN) *
************************************************************************/
/************************************************************************
*函数原型: bit BCAN_ENTER_RETMODEL(void) *
*参数说明: 无 *
*返回值: *
* 0 ; 表示成功进入复位工作模式 *
* 1 ; 表示不能进入复位工作模式 *
* *
*说明: CAN控制器进入复位工作模式 *
************************************************************************/
bit BCAN_ENTER_RETMODEL(void);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -