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

📄 lpc2400can.h

📁 周立功公司 LPC2478 TFT真彩色液晶+can的源代码
💻 H
字号:
/****************************************Copyright (c)**************************************************
**                                    广州致远电子有限公司
**                                     工业通信网络事业部
**                                http://www.embedcontrol.com
**-------------------------------------文件信息--------------------------------------------------------
**	文   件  	名:	LPC2400CAN.h
** 	当  前  版  本:	v1.0
** 	日		    期:	2007年5月06日
**	描		    述:	
**-------------------------------------历史创建--------------------------------------------------------
**	文   件  	名:	LPC2400CAN.h
** 	版  		本:	v1.0
** 	日		    期:	2008年4月26日
**	创    建    人:	刘彦龙
**	描		    述:	LPC2400开发板实验教程实例代码
**-------------------------------------历史修改--------------------------------------------------------
**	文   件  	名:	
** 	版  		本:	
** 	日		    期:	
**	修   改     人:	
**	描		    述:	
*********************************************************************************************************/
#ifndef _LPC2400CAN_H_
#define _LPC2400CAN_H_
/*********************************************************************************************************
 *               头文件包含                                             
*********************************************************************************************************/
#include "config.h"

/*********************************************************************************************************
 *               C++代码兼容                                             
**********************************************************************************************************/
#ifdef __cplusplus
{
#endif
/*********************************************************************************************************
*                    Fpclk=24MHz CAN标准波特率值                       
**********************************************************************************************************/

#define BPS_1000K	0x140002
#define BPS_1000K	0x140002
#define BPS_800K	0x160002
#define BPS_500K	0x1C0002
#define BPS_250K	0x1C0005
#define BPS_125K	0x1C000B
#define BPS_100K	0x1C000E
#define BPS_50K		0x1C001D
#define BPS_20K		0x1C004A
#define BPS_10K		0x1C0095


#define CANOFFSET	0x4000
#define RGE(ADDR)	(*((volatile unsigned long*)ADDR))

/*********************************************************************************************************
**   定义 CAN 报文收发项 结构体:
*********************************************************************************************************/
typedef struct _MessageDetail
{
	unsigned char LEN;
	unsigned char FF;           	// 是否标准帧
	unsigned int CANID;				// 长度与FF有关
	unsigned int DATAA;
	unsigned int DATAB;
}MessageDetail;

/*********************************************************************************************************
**   定义 CANMOD 寄存器:
1.This register controls the basic operating mode of the CAN Controller. 
2.Bits not listed read as 0 and should be written as 0.
*********************************************************************************************************/
typedef	union		_canmod_
{
	unsigned long DWord;
	struct	{
		unsigned int	RM 		:1;		//定义RM位(复位位)
		unsigned int	LOM 	:1;		//定义LOM位(只听模式位)

		unsigned int	STM		:1;		//定义STM位 "0"发送的信息必须被应答才被认可
		//"1"自测试模式,CANCMR的SRR位一起使用,可以达到自发自收的效果

		unsigned int	TPM 	:1;		//定义TPM位 "0"3个发送缓冲区的优先级由各自的CAN ID决定
		//"1"3个发送缓冲区的优先级由各自的Tx优先级域决定

		unsigned int	SM 		:1;		//定义SM位(睡眠模式位)

		unsigned int	RPM 	:1;		//定义RPM位 "0"如果传输的是显性位,Rx和Tx脚为低电平
		//"1"翻转极性模式--如果传输的是显性位,Rx脚为高电平

		unsigned int	RSV1 	:1;		//保留位
		unsigned int	TM 		:1;		//定义TM位(测试模式)
		unsigned int	RSV24	:24;	//保留位
	}Bits;
}REG_CANMOD;
/*
********************************************************************************************************
**   定义 CAN 帧结构体:
********************************************************************************************************
*/
typedef struct _CANFRMAE
{
	unsigned long ID;		//帧ID
	unsigned char LEN;		//数据长度
	unsigned char RTR;		//远程帧标志
	unsigned char FF;		//扩展帧标志
	unsigned char DATA[8];	//帧数据
}CANFRAME;
/*
*********************************************************************************************************
**函数原型		:  	unsigned char Enter_SWRst(unsigned char Ch);
**参数说明		:  	Ch:CAN控制器号,0表示第一路CAN
**返回值		:	0:失败
**				:	1: 成功	
**说	明		:	CAN控制器进入软件复位模式
*********************************************************************************************************/
unsigned char Enter_SWRst(unsigned char Ch);
/*
*********************************************************************************************************
**函数原型		:  	unsigned char Quit_SWRst(unsigned char Ch);
**参数说明		:  	Ch:CAN控制器号,0表示第一路CAN
**返回值		:	0:失败
**				:	1: 成功	
**说	明		:	CAN控制器退出软件复位模式
*********************************************************************************************************/
unsigned char Quit_SWRst(unsigned char Ch);
/*
*********************************************************************************************************
**函数原型		:  	unsigned char CAN_Init(unsigned char Ch, unsigned long Baud);
**参数说明		:  	Ch:CAN控制器号,0表示第一路CAN
**				:	Baud:CAN波特率值
**返回值		:	无
**说	明		:	CAN控制器退出软件复位模式
*********************************************************************************************************/
void CAN_Init(unsigned char Ch, unsigned long Baud);
/*
*********************************************************************************************************
**函数原型		:  	unsigned char writedetail(unsigned char LEN,unsigned char FF, unsigned int ID,unsigned char *data);
**参数说明		:  	LEN:数据长度
**				:	*data 发送数据所在的数组 
				:   
**返回值		:	操作成功返回 1 失败返回 0
**说	明		:	 用户填写发送 帧信息
*********************************************************************************************************/
 unsigned char writedetail(unsigned char LEN,unsigned char FF, unsigned int ID,unsigned char *data);
/*
*********************************************************************************************************
**函数原型		:  	unsigned char CANSend(unsigned char Ch, unsigned char BUFNum);
**参数说明		:  	Ch:CAN控制器号,0表示第一路CAN
**				:	BUFNum 选择缓冲区
				:   MessageDetailT 报文的特征信息及数据
**返回值		:	无
**说	明		:	CAN控制器退出软件复位模式
*********************************************************************************************************/
unsigned char CANSend(unsigned char Ch, unsigned char BUFNum);

/*
*********************************************************************************************************
**函数原型		:  	unsigned char CANRCVANDSEND(unsigned char Ch, unsigned char BUFNum);
**参数说明		:  	Ch:CAN控制器号,0表示第一路CAN
**				:	BUFNum 选择缓冲区
**返回值		:	无
**说	明		:	CAN将收到的信息再发送出去 
*********************************************************************************************************/
unsigned char CANRCVANDSEND(unsigned char Ch, unsigned char BUFNum);

/************************************************************************/
/*               文家结束                                               */
/************************************************************************/
#ifdef __cplusplus
#endif
#endif

⌨️ 快捷键说明

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