基于S32K(linstack协议栈)的lin诊断功能实现(主机)

1.勾选使能传输层和支持诊断功能,在下面选择框中勾选需要的诊断服务。

2.导入组件,请根据自己的芯片型号导入响应协议栈,否则组件无法生成代码。

3.将此代码复制进代码中,在程序中调用函数。

typedef enum
{
	Positive_response=0,
	Negitive_response,
}UDS_ON_LIN_RESPONSE;
/*Init*/
l_sys_init();
l_ifc_init(LI0);
ld_init(LI0);
l_sch_set(LI0, LI0_NormalTable1, 0u);
/*Function*/
UDS_ON_LIN_RESPONSE UDS_ON_LIN_task()
{
	UDS_ON_LIN_RESPONSE Retuen_code=Negitive_response;
	static uint8_t linRxBuff[8] = {0};
	static uint8_t linTxBuff[8] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18};
	g_lin_protocol_state_array[LI0].response_buffer_ptr=linRxBuff;
	diag_write_data_by_identifier(LI0,74,5,linTxBuff);//2E diagnosic command
	if(l_flg_tst_LI0_MasterReq_flag()==true){
		l_flg_clr_LI0_MasterReq_flag();
		(void)lin_lld_tx_header(LI0, 0X3D);
	}
	if(l_flg_tst_LI0_SlaveResp_flag()==true)
	{
		l_flg_clr_LI0_SlaveResp_flag();
		if(linRxBuff[1]==0x11)
		{
			Retuen_code=Positive_response;
		}
	}
	return Retuen_code;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值