⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sjabca~3.h

📁 SMALLrtos下的CAN通信远码
💻 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 + -