📄 sjabca~3.h
字号:
/************************************************************************
* 广州周立功单片机发展有限公司 http://www.zlgmcu.com *
***********************************************************************/
/************************************************************************
* *
* CAN 控制器SJA1000基本的硬件定义(BasicCAN 工作方式) *
* *
***********************************************************************/
/************************************************************************
* *
* 目的: SJA1000基本寄存器\功能位定义,便于用户使用SJA1000时 *
* 只需作与其硬件系统相适合的简单的修改,便能实现SJA1000的 *
* BasicCAN工作方式的功能 *
* *
* 文件名: SJABCANio.H *
* *
* 模块名: -- *
* *
* 目标系统: 任何基于任何兼容8051指令的微处理器同SJA1000组成的CAN *
* 系统 *
* *
* 应用语言: Keil C51 *
* *
************************************************************************
* 版本 :V1.0 *
* *
************************************************************************
* 广州周立功单片机发展有限公司 保留所有的版权 *
************************************************************************/
#ifndef _BASICCANIO_H
#define _BASICCANIO_H
/*
*******************************************************************************************************************
* 变量及函数的存储方式定义
********************************************************************************************************************
*/
#ifndef _BASICCANIO_GLOBAL_
#define BASICCANIO_GLOBAL extern
#else
#define BASICCANIO_GLOBAL
#endif
/************************************************************************
*SJA1000与微处理器的接口是以外部存储器的方式,所以以下的基址定义,用户 *
*应根据自己的实际电路来进行调整 *
************************************************************************/
//#define SJA_BaseAdr 0xfa00
BASICCANIO_GLOBAL code unsigned char xdata *SJA_BaseAdr;
//计算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
/************************************************************************
*内部地址 01EH 备用 *
************************************************************************/
/************************************************************************
*时钟分频寄存器(内部地址01FH) *
************************************************************************/
#define REG_CDR 0x1F //时钟分频寄存器
/*
***********************************************************************
*宏定义IO操作 *
***********************************************************************
*/
//写数据到SJA1000的某寄存器
#define WriteDataToSJA1000(RegAdr,Value) *(SJA_BaseAdr+RegAdr)=Value
//读出SJA1000某寄存器的值
#define ReadDataFromSJA1000(RegAdr) *(SJA_BaseAdr+RegAdr)
/*
***********************************************************************
*BasicCAN IO 定义结束 *
***********************************************************************
*/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -