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

📄 custom.h

📁 Keil平台
💻 H
字号:
/****************************************Copyright (c)**************************************************
**                               广州周立功单片机发展有限公司
**                                     研    究    所
**                                        产品一部 
**                                 http://www.zlgmcu.com
**-----------------------------------------------------------文件信息--------------------------------------------------------------------------------
**	文   件  	名:	CUSTOM.H
** 	版  		本:	v1.0
** 	日		期:	2004年3月2日
**	描		述:	用户特殊选项配置头文件
********************************************************************************************************/
#ifndef	_CUSTOM_H_
#define	_CUSTOM_H_
/*
CAN的波特率设定相关概念:
1.标称位速率:标称位速率为一理想的发送器在没有重新同步的情况下每秒发送的位数量。
2. 标称位时间:标称位时间=1/标称位速率
CAN标称位时间定义比较灵活,这里给出一个简单的原则:
定义:
CAN时钟: Tscl=(BRP+1)/Fvpb
     则: Tseg1=(TSEG1+1)*Tscl Tseg2=(TSEG2+1)*Tscl Tsjw=(SJW+1)*Tscl
 应满足: Tseg2>=2Tscl Tseg2>=Tsjw Tseg1>=Tseg2
CANBTR设置实例:假设VPB时钟为24MHz,需设置CAN标称位速率为100k
                可设置CANBTR为:0x001C000E 也即:  BRP=14;SJW=0;TSEG1=12;TSEG2=1;
                从而CAN位速率可以由下式计算得到:CANbps=Fvpb/(TSEG1+TSEG2+3)(BRP+1)
                其中:CANbps为CAN位速率;Fvpb为VPB频率
                如上式所示:当Fvpb=24MHz时,CANbps=100kbits/s
                MaxCANbps=Fvpb/(TSEG1+TSEG2+3-(SJW+1))(BRP+1)=106kbits/s
                MinCANbps=Fvpb/(TSEG1+TSEG2+3+(SJW+1))(BRP+1)=94kbits/s
*/
#define BPS_100K                0x001C000E          //刘宝贵计算的CAN的波特率100Kbps时总线时序器的值
#define BPS_50K                 0x001C001D          //刘宝贵计算的CAN的波特率50Kbps时总线时序器的值
//全局应用定义
#define REALCAN	                2                   //定义本系统中使用CAN的个数
#define	CAN_MAX_NUM				4					//微处理器所含有的最大CAN模块的数目
#define	CAN_OFFSET_ADR			0x4000				//CAN各模块寄存器之间的线性差异
#define	USE_CAN_RCV_BUF_SIZE	0x20				//驱动程序使用的接收环形缓冲区的大小
//各路CAN独立应用定义
#define	USE_MODE_CAN1			0x00				//CAN模块1的工作模式定义
#define	USE_MODE_CAN2			0x00				// CAN模块2的工作模式定义
#define	USE_MODE_CAN3			0x00				// CAN模块3的工作模式定义
#define	USE_MODE_CAN4			0x00				// CAN模块4的工作模式定义


#define	USE_EWL_CAN1			0x60				// CAN模块1的错误报警界限值
#define	USE_EWL_CAN2			0x60				// CAN模块2的错误报警界限值
#define	USE_EWL_CAN3			0x60				// CAN模块3的错误报警界限值
#define	USE_EWL_CAN4			0x60				// CAN模块4的错误报警界限值


#define	USE_INT_CAN1			0x7FF				//CAN模块1的中断使能方式
#define	USE_INT_CAN2			0x7FF				// CAN模块2的中断使能方式
#define	USE_INT_CAN3			0x7FF				// CAN模块3的中断使能方式
#define	USE_INT_CAN4			0x7FF				// CAN模块4的中断使能方式


#define	USE_TPM_CAN1			0x01				// CAN模块1的发送优先级模式
#define	USE_TPM_CAN2			0x01				// CAN模块2的发送优先级模式
#define	USE_TPM_CAN3			0x01				// CAN模块3的发送优先级模式
#define	USE_TPM_CAN4			0x01				// CAN模块4的发送优先级模式


//#define	USE_BTR_CAN1			BPS_250K			// CAN模块1的总线波特率
//#define	USE_BTR_CAN2			BPS_250K			// CAN模块2的总线波特率
//#define	USE_BTR_CAN3			BPS_250K			// CAN模块3的总线波特率
//#define	USE_BTR_CAN4			BPS_250K			// CAN模块4的总线波特率
#define	USE_BTR_CAN1			BPS_50K			// CAN模块1的总线波特率
#define	USE_BTR_CAN2			BPS_50K			// CAN模块2的总线波特率
#define	USE_BTR_CAN3			BPS_50K			// CAN模块3的总线波特率
#define	USE_BTR_CAN4			BPS_50K			// CAN模块4的总线波特率
#endif
/*********************************************************************************************************
**                            				End Of File
********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -