📄 sja_bcanconf1.c
字号:
/*
********************************************************************************************************************
*描述: 独立的CAN 控制器SJA1000基本硬件头文件定义(BasicCAN 工作方式)
*文件名: SJA_BcanConf.H
*应用语言: KEIL C51
*版本 : V1.0
*广州周立功单片机发展有限公司 保留所有的版权
********************************************************************************************************************
*/
/*$page*/
#ifndef _BASICCANCONF_H
#define _BASICCANCONF_H
/*
********************************************************************************************************************
*SJA1000与微处理器的接口是以外部存储器的方式,所以以下的基址定义,用户应根据自己的实际电路来进行调整
********************************************************************************************************************
*/
#define SJA_BaseAdr 0xfa00 //定义sja1000的片选基址
/*$page*/
/*
********************************************************************************************************************
* 以下的定义为SJA1000的PeliCAN模式内部寄存器的地址,不可修改;各寄存器的具体功能清参阅sja1000的数据手册
********************************************************************************************************************
*/
/*$page*/
/*
********************************************************************************************************************
* 模式和控制寄存器的地址和位定义PeliCAN模式
********************************************************************************************************************
*/
#define REG_CAN_MOD SJA_BaseAdr+0x00 //内部控制寄存器
#define RM_RR_Bit 0x01 //复位模式(请求)位
#define LOM_Bit 0x02 //监听模式位
#define STM_Bit 0x04 //自我测试模式位
#define AFM_Bit 0x08 //验收滤波器模式位
#define SM_Bit 0x10 //睡眠模式位
/*
********************************************************************************************************************
* 命令寄存器的地址和位定义 PeliCAN模式
********************************************************************************************************************
*/
#define REG_CAN_CMR SJA_BaseAdr+0x01 //命令寄存器
#define TR_Bit 0x01 //发送请求位
#define AT_Bit 0x02 //中止发送位
#define RRB_Bit 0x04 //释放接收缓冲器位
#define CDO_Bit 0x08 //清除数据溢出位
#define SRR_Bit 0x10 //自身接收请求位
/*
********************************************************************************************************************
* 状态寄存器的地址和位定义 PeliCAN模式
********************************************************************************************************************
*/
#define REG_CAN_SR SJA_BaseAdr+0x02 //状态寄存器
#define RBS_Bit 0x01 //接收缓冲器状态位
#define DOS_Bit 0x02 //数据溢出状态位
#define TBS_Bit 0x04 //发送缓冲器状态位
#define TCS_Bit 0x08 //发送完成状态位
#define RS_Bit 0x10 //接收状态位
#define TS_Bit 0x20 //发送状态位
#define ES_Bit 0x40 //错误状态位
#define BS_Bit 0x80 //总线状态位
/*
********************************************************************************************************************
* 中断寄存器的地址和位定义 PeliCAN模式
********************************************************************************************************************
*/
#define REG_CAN_IR SJA_BaseAdr+0x03 //中断寄存器
#define RI_Bit 0x01 //接收中断位
#define TI_Bit 0x02 //发送中断位
#define EI_Bit 0x04 //错误警告中断位
#define DOI_Bit 0x08 //数据溢出中断位
#define WUI_Bit 0x10 //唤醒中断位
#define EPI_Bit 0x20 //错误消极中断位
#define ALI_Bit 0x40 //仲裁丢失中断位
#define BEI_Bit 0x80 //总线错误中断位
/*
********************************************************************************************************************
* 中断寄存器的地址和位定义 PeliCAN模式
********************************************************************************************************************
*/
#define REG_CAN_IER SJA_BaseAdr+0x04 //中断使能寄存器
#define RIE_Bit 0x01 //接收中断使能位
#define TIE_Bit 0x02 //发送中断使能位
#define EIE_Bit 0x04 //错误警告中断使能位
#define DOIE_Bit 0x08 //数据溢出中断使能位
#define WUIE_Bit 0x10 //唤醒中断使能位
#define EPIE_Bit 0x20 //错误消极中断使能位
#define ALIE_Bit 0x40 //仲裁丢失中断使能位
#define BEIE_Bit 0x80 //总线错误中断使能位
/*
********************************************************************************************************************
* SJA_BaseAdr+0x05 寄存器功能保留
********************************************************************************************************************
*/
/*
********************************************************************************************************************
* 总线定时器寄存器的地址和位定义 PeliCAN模式
********************************************************************************************************************
*/
#define REG_CAN_BTR0 SJA_BaseAdr+0x06 //总线定时器0寄存器
#define REG_CAN_BTR1 SJA_BaseAdr+0x07 //总线定时器1寄存器
#define SAM_Bit 0x80 //采样模式位;0==总线被采样1次;1== 总线被采样3次
/*
********************************************************************************************************************
* 输出控制寄存器的地址和位定义 PeliCAN模式
********************************************************************************************************************
*/
#define REG_CAN_OCR SJA_BaseAdr+0x08 //输出控制寄存器
/*OCMODE1 ,OCMODE0 */
#define BiPhaseMode 0x00 //双相输出模式
#define NormalMode 0x02 //正常输出模式
#define ClkOutMode 0x03 //时钟输出模式
/*TX1 的输出管脚配置*/
#define OCPOL1_Bit 0x20 //输出极性控制位
#define Tx1Float 0x00 //配置为悬空
#define Tx1PullDn 0x40 //配置为下拉
#define Tx1PullUp 0x80 //配置为上拉
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -