S32K的LinStack组件使用(LDF配置LIN)

本文摘要:本文章介绍如何使用NXP官方软件S32KDS中的LinStack组件

开发平台:S32 Design Studio for ARM Version 2.2

SDK版本:S32_SDK_S32K1xx_RTM_3.0.0

使用芯片:S32K148

组件例程免费下载方式在文末!!!

1. 双击PinSettings先配置好要使用的LIN的串口引脚

2. 双击Components将LinStack组件添加进工程

3. 双击LinStack组件打开如下图的LinStack配置页面

4. 复制LDF文件将其粘贴到Source文件夹下

5. 在LinStack配置页面里点击...选择LDF文件

6. 点击Node name下拉列表重新选择节点名称

7. 打开LIN配置页面可以配置波特率和主从机

8. 配置好参数后点击如下图按钮或选项即可将配置数据更新至代码

9. 在代码中加入LIN初始化的代码即可使用LIN

// 系统参数 不修改
#define TIMER_COMPARE_VAL 2000
#define TIMER_TICKS_1US   4U
// 时基计数
uint16_t timerOverflowInterruptCount = 0;
// LIN初始化
void LIN0_Init(void)
{
    l_sys_init();
	l_ifc_init(LI0);
    // 做从机时注释l_sch_set()
	l_sch_set(LI0, LI0_HiFire_V2, 0);  // LI0_LDFNAME
}
// LIN时基回调函数
uint32_t lin1TimerGetTimeIntervalCallback0(uint32_t *ns)
{
	static uint32_t previousCountValue = 0;
	uint32_t counterValue;

	counterValue = LPTMR_DRV_GetCounterValueByCount(INST_LPTMR1);
	*ns = ((uint32_t)(counterValue + timerOverflowInterruptCount * TIMER_COMPARE_VAL - previousCountValue)) * 1000 / TIMER_TICKS_1US;
	timerOverflowInterruptCount = 0;
	previousCountValue = counterValue;
	return 0;
}
// 下面代码加入到0.5ms定时器中断函数中
/******************************LIN******************************/
static interruptCount = 0;
lin_lld_timeout_service(LI0);
// 给LIN一个5ms的心跳
if(++interruptCount >= 10)
{
	l_sch_tick(LI0);
	interruptCount = 0;
}
timerOverflowInterruptCount++;
LPTMR_DRV_ClearCompareFlag(INST_LPTMR1);
/***************************************************************/

10. 备注(命名格式必须正确否则错误;时基回调函数名在第7步中有写)

11. lin的所有操作函数在如下图路径下,可直接调用lin读写等函数

12. 使用多条LIN的在linstack组件配置页面进行如下图操作 

13.  新增加的LIN不会自动分配LPUART,需要进入到LIN组件下自己配置,如下图操作

组件例程下载地址:

https://download.csdn.net/download/m0_50669075/85039436

S32K148更多例程和源码以及最新内容下载地址:

nxp_s32k148_template: 使用NXP的S32KDS软件基于S32_SDK_S32K1xx_RTM_3.0.0编写的的S32K148各组件测试例程,亲测可用,带有注释,适用于S32K14X系列的芯片。 (gitee.com)

END

  • 4
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿衰0110

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值