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

📄 can_hardvalue.h

📁 盛博can驱动程序功能很全
💻 H
字号:
  #include "can_headfile.h"
#include "can_errno.h"
#define CAN_DEV_NUM 2

#define min(a,b)  ((a)<(b) ? (a):(b))
#define TXMESSAGE (sizeof(struct CAN_frame))
#define RXMESSAGE (sizeof(struct CAN_frame))
#define HARDTOBUF  0
#define BUFTOHARD  1
#define CANDELAY    10000
#define BUFSIZE   (4096/(sizeof(struct CAN_frame)))

extern unsigned char R_m_counter1,R_m_counter0;
extern unsigned char r_data[13];
extern unsigned int int_num,num;
extern int base,address_r,k;

extern int recv_count,send_count;
enum pat {S,E};
enum typ {D,R};
enum IRQV {IRQ15,IRQ7,IRQ5,IRQ3};
enum fil {SINGLE,DOUBLE};
enum sle {SON,SOFF};
enum lis {LON,LOFF};
enum tes {TON,TOFF};
enum bau {B1000,B800,B500,B320,B250,B160,B80,B40,B20,B10,B5};


struct CAN_frame{
	         u8 ff;
                 u8 id1;
	         u8 id2;
	         u8 id3;
	         u8 id4;
	         u8 data[8];
} __attribute__ ((packed));

struct CAN_init_struct
{  //50
	 enum fil filter;
	 enum lis lis_on;
	 enum tes test;
	 enum sle sleep;
	 enum bau baud_rate;
	 int trig_level;

	 u8 code1;
	 u8 code2;
	 u8 code3;
	 u8 code4;
	 u8 mask1;
	 u8 mask2;
	 u8 mask3;
	 u8 mask4;
};

struct filter_struct
{
	   u8 code1;
	   u8 code2;
	   u8 code3;
	   u8 code4;
	   u8 mask1;
	   u8 mask2;
	   u8 mask3;
	   u8 mask4;
};
struct err_cap_struct
{
	    u8 code;
	    u8 pos;
};

struct arb_cap_struct
{
	   u8 code;
	   u8 pos;
};


struct CAN_device_struct
{
	    unsigned char      *dev_name;
	    unsigned short int  major,minor;
	    unsigned int       base_addr;
	    unsigned short int  int_level;
	    unsigned long       ref_count;
            unsigned int status;
 	    struct CAN_init_struct *parm;
            unsigned char        tx_lock;
 	    unsigned char        rx_lock;
            struct CAN_frame  *recv_data;
	    struct CAN_frame  *send_data;
            volatile unsigned long   recv_head,recv_tail;
	    struct tq_struct *recv_bottom_task;

	     wait_queue_head_t recv_queue;
	     wait_queue_head_t send_queue;

	    struct fasync_struct *async_queue;
	    struct timer_list *CAN_timer;
	    int timer_count;
} * CAN_device[CAN_DEV_NUM];

struct timer_data_struct {
	        int rx_tx_flag;
	        struct CAN_device_struct *dev;
};
struct timer_data_struct *can_timer_data;

struct timer_data_struct *can_timer_data;
extern void CAN_interrupt(int irq, void *dev_id, struct pt_regs *regs);
	

⌨️ 快捷键说明

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