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

📄 lin_def.h

📁 linBUS驱动原码
💻 H
字号:
#ifdef LIN_API_GLOBALS
#define LIN_API_EXT
#else
#define LIN_API_EXT extern 
#endif 

/*--- type definition ---*/
typedef enum {	NO_ERROR,BIT_ERROR,ID_PARITY_ERROR,CHECKSUM_ERROR,
		NO_ID_MATCH,TIMEOUT_ERROR,DATA_RECEIVED,DATA_REQUEST,
		WAKE_UP,UART_ERROR,SYNCH_BREAK_ERROR}t_error;

typedef enum {ID_DATAREQUEST,ID_DATASENT}t_message_direction;

typedef struct{
	l_u8 id;
	t_message_direction dir;
	l_u8 length;} t_id_list;

typedef struct{
	t_error error_code;
	l_u8 data_byte;} t_one_databyte_output;

typedef struct      
{	
	l_u8 identifier;
	l_u8 length;} t_header;

typedef struct      
{	
	l_u8 DATA[8];
	l_u8 checksum;} t_response;
typedef struct{
	l_u8	next_sch_list;
	l_u8 	id_table_num;
	l_u8 	*data_ptr;
	l_u16	delay_time;} t_schedule;

#define l_signal_handle	    t_id_list	
#define l_flag_handle		l_bool
#define l_ifc_handle		l_u8
#define l_schedule_handle	t_schedule*	

/************************************************
**描述:
**l_sys_init执行LIN软件的初始化。
**返回值:
**"0":如果成功初始化。
**"非零":初始化失败。
**注意:
**用户在LIN软件中使用任何其他API函数前必须首先调用l_sys_init函数。
************************************************/
LIN_API_EXT l_bool l_sys_init(void);
/*************************************************
**其中SSS是信号的名字(例如:l_u8_rd_EngineSpeed())
**读和返回名字是sss的信号的当前值。
*************************************************/
//动态
LIN_API_EXT l_bool 	l_bool_rd(l_signal_handle sss);
LIN_API_EXT l_u8	l_u8_rd(l_signal_handle sss);
LIN_API_EXT l_u16 	l_u16_rd(l_signal_handle sss);
LIN_API_EXT void 	l_u8_ptr_rd(l_signal_handle sss,l_u8 * rd_ptr,l_u8 num);
//静态
LIN_API_EXT l_bool 	l_bool_rd_sss(l_signal_handle sss);
LIN_API_EXT l_u8	l_u8_rd_sss(l_signal_handle sss);
LIN_API_EXT l_u16 	l_u16_rd_sss(l_signal_handle sss);
/*************************************************
**其中SSS是信号的名字(例如:l_u8_wr_EngineSpeed(v))
**将名字是sss的信号的当前值设置成v。
*************************************************/
//动态
LIN_API_EXT void 	l_bool_wr(l_signal_handle sss,l_bool v);
LIN_API_EXT void    l_u8_wr(l_signal_handle sss,l_u8 v);
LIN_API_EXT void 	l_u16_wr(l_signal_handle sss,l_u16 v);
LIN_API_EXT void    l_u8_ptr_wr(l_signal_handle sss,l_u8 *wr_ptr);
//静态
LIN_API_EXT void 	l_bool_wr_sss(l_bool v);
LIN_API_EXT void	l_u8_wr_sss(l_u8 v);
LIN_API_EXT void 	l_u16_wr_sss(l_u16 v);
/*************************************************
**其中fff是标志的名字(例如:l_flg_tet_RxEngineSpeed())
**返回值是C的布尔类型,表示由名字fff指定的标志的当前状态(即返回0,否则返回非0值)。
*************************************************/
//动态
LIN_API_EXT l_bool 	l_flg_tst(l_flag_handle fff);
//静态
LIN_API_EXT l_bool 	l_flg_tst_fff(void);
LIN_API_EXT l_bool 	l_flg_tst_5ms(void);
/*************************************************
**其中fff是标志的名字(例如:l_flg_clr_RxEngineSpeed())
**将名字是fff的标志的当前值置零。
*************************************************/
//动态
LIN_API_EXT void 	l_flg_clr(l_flag_handle fff);
//静态
LIN_API_EXT void 	l_flg_clr_fff(void);
LIN_API_EXT void	l_flg_clr_5ms(void);
/*************************************************
**其中iii是接口的名字(例如:l_sch_tick_MyLinlfc())
**调用该函数把要发送的进度表项的号码返回
*************************************************/
//动态
LIN_API_EXT l_u8 	l_sch_tick(l_ifc_handle iii);
//静态
LIN_API_EXT l_u8 	l_sch_tick_iii(void);
/*************************************************
**其中iii是接口的名字(例如:l_sch_set_MyLinlfc(MySchedule1,0))
**调用该函数来设定将要发送的进度表及起始表项
*************************************************/
//动态
LIN_API_EXT void 	l_sch_set(l_ifc_handle iii,l_schedule_handle sch,l_u8 ent);
//静态
LIN_API_EXT void 	l_sch_set_iii(l_schedule_handle sch,l_u8 ent);
LIN_API_EXT void 	l_sch_set_932led(l_schedule_handle sch,l_u8 ent);
/*************************************************
**其中iii是接口的名字(例如:l_ifc_init_MyLinIfc())
**调用该函数来初始化名字为iii的控制器。
*************************************************/
//动态
LIN_API_EXT void 	l_ifc_init(l_ifc_handle iii);
//静态
LIN_API_EXT void 	l_ifc_init_iii(void);
LIN_API_EXT void 	l_ifc_init_932led(void);
/*************************************************
**其中iii是接口的名字(例如:l_ifc_connect_MyLinIfc())
**调用该函数将接口iii连接到LIN网络上,可以向总线传输报文头和数据
*************************************************/
//动态
LIN_API_EXT l_bool 	l_ifc_connect(l_ifc_handle iii);
//静态
LIN_API_EXT l_bool 	l_ifc_connect_iii(void);
LIN_API_EXT l_bool 	l_ifc_connect_932led(void);
/*************************************************
**其中iii是接口的名字(例如:l_ifc_disconnect_MyLinIfc())
**调用该函数将接口iii断开与LIN网络的连接,不能向总线传输报文头和数据
*************************************************/
//动态
LIN_API_EXT l_bool 	l_ifc_disconnect(l_ifc_handle iii);
//静态
LIN_API_EXT l_bool 	l_ifc_disconnect_iii(void);
LIN_API_EXT l_bool 	l_ifc_disconnect_932led(void);






⌨️ 快捷键说明

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