📄 can.h
字号:
/*----------------------------------------------------------------------------
* A R T X - K e r n e l
*----------------------------------------------------------------------------
* Name: CAN.h
* Purpose: Header for CAN Generic Driver
* Rev.: V0.11a / september-15-2005
*----------------------------------------------------------------------------
* This code is part of the ARTX-ARM kernel package of Keil Software.
* Copyright (c) 2004-2005 Keil Software. All rights reserved.
*---------------------------------------------------------------------------*/
#include "CAN_cfg.h" /* LPC2xxx CAN Configuration */
#ifndef _CAN_H
#define _CAN_H
/* Definition of memory pool type, for CAN messages */
#define CAN_msgpool_declare(name,cnt) U32 name[cnt*(sizeof(CAN_msg)/4) + 3]
/* Definition of mailbox array, for used controllers */
#define mbx_arr_declare(name,arr_num,cnt) U32 name[arr_num][4 + cnt]
/* CAN message object structure */
typedef struct {
U32 id; /* 29 bit identifier */
U8 data[8]; /* Data field */
U8 len; /* Length of data field in bytes */
U8 ch; /* Object channel */
U8 format; /* 0 - STANDARD, 1- EXTENDED IDENTIFIER */
U8 type; /* 0 - DATA FRAME, 1 - REMOTE FRAME */
} CAN_msg;
/* Externaly declared memory pool for CAN messages, both transmit and receive*/
extern U32 CAN_mpool[CAN_CTRL_MAX_NUM*(CAN_No_SendObjects+CAN_No_ReceiveObjects)*(sizeof(CAN_msg)/4) + 3];
/* Externaly declared mailbox, for CAN transmit messages */
extern U32 MBX_tx_ctrl[CAN_CTRL_MAX_NUM][4 + CAN_No_SendObjects];
/* Externaly declared mailbox, for CAN receive messages */
extern U32 MBX_rx_ctrl[CAN_CTRL_MAX_NUM][4 + CAN_No_ReceiveObjects];
/* Externaly declared flags signaling writing to CAN hardware */
extern U8 wr_to_CAN_hw[CAN_CTRL_MAX_NUM];
/* Symbolic names for CAN interrupt status */
typedef enum {ENABLE = 0, DISABLE} INT_STATUS;
/* Symbolic names for formats of CAN message */
typedef enum {STANDARD_FORMAT = 0, EXTENDED_FORMAT} CAN_FORMAT;
/* Symbolic names for type of CAN message */
typedef enum {DATA_FRAME = 0, REMOTE_FRAME} CAN_FRAME;
/* Functions defined in module CAN.c */
CAN_ERROR CAN_init (U32 ctrl, U32 baudrate);
CAN_ERROR CAN_start (U32 ctrl);
CAN_ERROR CAN_send (U32 ctrl, CAN_msg *msg, U16 timeout);
CAN_ERROR CAN_request (U32 ctrl, CAN_msg *msg, U16 timeout);
CAN_ERROR CAN_receive (U32 ctrl, CAN_msg *msg, U16 timeout);
CAN_ERROR CAN_rx_object (U32 ctrl, U32 ch, U32 id, CAN_FORMAT filter_type);
CAN_ERROR CAN_tx_object (U32 ctrl, U32 ch, U32 id, CAN_FORMAT filter_type);
#endif /* _CAN_H */
/*----------------------------------------------------------------------------
* end of file
*---------------------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -