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

📄 iar-

📁 IAR_example_EasyARM8962.zip
💻
📖 第 1 页 / 共 2 页
字号:
/****************************************Copyright (c)****************************************************
**                               Guangzhou ZHIYUAN electronics Co.,LTD.
**                                     
**                                 http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File Name:               CANRcv_snd.c
** Last modified Date:      2007.01.18
** Last Version:            1.0
** Description:             CAN 通信程序
** 
**--------------------------------------------------------------------------------------------------------
** Created By:              曾维勇
** Created date:            2007.09.16
** Version:                 1.0
** Descriptions:            The original version 初始版本
**
**--------------------------------------------------------------------------------------------------------
** Modified by:             Ni Likao 倪力考
** Modified date:           2007.11.02
** Version:                 1.1
** Description:             The second version 第二版
**
*********************************************************************************************************/

#ifndef _MY_CAN_
#define _MY_CAN_ 

#ifdef __cplusplus
extern "C"
{
#endif

/*********************************************************************************************************
  定义CAN数据收发缓冲区标识符
*********************************************************************************************************/
#define FULL                    2
#define EMPTY                   3
#define NOT_FULL                4
#define NOT_EMPTY               5

/*********************************************************************************************************
  定义验收过滤验收方式
*********************************************************************************************************/
#define EXT_ID_FILTER           1

#define STD_ID_FILTER           3

#define UNMASK                  0x00000000
#define MASK                    0x1FFFFFFF

/*********************************************************************************************************
  定义接收、发送MsgObj
*********************************************************************************************************/
#define RxMsgObj_ONE            31
#define TxMsgObj_ONE            1 

/*********************************************************************************************************
  波特率宏定义
*********************************************************************************************************/
#define CANBAUD_1M              0
#define CANBAUD_500K            1
#define CANBAUD_250K            2
#define CANBAUD_125K            3
#define CANBAUD_100k            4
#define CANBAUD_50k	            5
#define CANBAUD_25k				6
#define CANBAUD_20k				7
#define CANBAUD_10k				8
#define CANBAUD_5k				9
#define CANBAUD_2k5				10

/*********************************************************************************************************
   宏定义CAN报文缓冲区长度
*********************************************************************************************************/
 
#define CAN_MAX_Buffer          10

/*********************************************************************************************************
  定义CAN报文结构体				
*********************************************************************************************************/

typedef	 struct _tCANFrame {
   unsigned char ucXID;	                                                /*  0 标准帧;1 扩展帧          */  
   unsigned char ucDLC;						                            /*  数据场长度                  */
   unsigned long ulID;							                        /*  CAN报文ID                   */
   unsigned char ucDatBuf[8];					                        /*  报文数据场                  */

}tCANFrame;

/*********************************************************************************************************
  定义CAN接收、发送数据缓冲区					  
*********************************************************************************************************/
typedef	 struct _tCANFrameBuf {
    unsigned char ucBufEmpty;					                        /*  缓冲区为空标识              */
	unsigned char ucBufFull;					                        /*  缓冲区满标识                */
	unsigned char ucSize;
	unsigned char ucWrite;
	unsigned char ucRead;
	tCANFrame     Buffer[CAN_MAX_Buffer];	                            /*  数据场缓冲区                */

}tCANFrameBuff;
/*********************************************************************************************************
  定义CAN节点结构体
*********************************************************************************************************/
typedef struct _tCANNodeInfo {
    unsigned long ulChNr;
	unsigned char ucBADVal;
	unsigned long ulRxMsgObjNr;	         
	unsigned long ulTxMsgObjNr;
	tCANFrameBuff *pReceFrameBuff;
	tCANFrameBuff *pSendFrameBuff;

}tCANNodeInfo;

/*********************************************************************************************************
** Function name:           CreateCAN
** Descriptions:            创建一个节点信息结构体
** input parameters:        *pCAN           指向节点结构的空指针
**                          ulChannelNr     节点通道号
**                          ulBaud          节点通信波特率
**			                ulRxMsgObj      节点接收数据MO
**			                ulTxMsgObj      节点发送数据MO
**			                *pReceBuff      节点接收数据缓冲区
**                          *pSendBuff      节点发送数据缓冲区
** output parameters:       无
** Returned value:          无
** Created By:              曾维勇
** Created date:            2007.09.16
**--------------------------------------------------------------------------------------------------------
** Modified by:             Ni Likao 倪力考
** Modified date:           2007.11.02
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
extern void CreateCAN (void  *pCAN, unsigned long  ulChannelNr, unsigned char  ulBaud, unsigned long  ulRxMsgObj,
                       unsigned long  ulTxMsgObj, tCANFrameBuff  *pReceBuff, tCANFrameBuff  *pSendBuff);

/*********************************************************************************************************
** Function name:           CAN_ucWriteBuffer
** Descriptions:            写帧接收缓冲区
** input parameters:        *pBuf           指向接收缓冲区的指针
**                          *pWrite         写数据块指针
** output parameters:       无
** Returned value:          FULL,          缓冲区已满
**                          NOT_FULL        缓冲区未满
** Created By:              曾维勇
** Created date:            2007.09.16
**--------------------------------------------------------------------------------------------------------
** Modified by:             Ni Likao 倪力考
** Modified date:           2007.11.02
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
extern unsigned char CAN_ucWriteBuffer (void  *pBuf, void  *pWrite);

/*********************************************************************************************************
** Function name:           CAN_ucReadBuffer
** Descriptions:            读数据缓冲区
** input parameters:        *pBuf           指向数据缓冲区指针
**                          *pRead          读数据块指针
** output parameters:       无
** Returned value:          EMPTY ,        缓冲区为空

⌨️ 快捷键说明

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