S32K3定时器(STM&PIT)使用——基于MCAL

8 篇文章 10 订阅

1.Abbreviation

STM system timer Module
PIT periodic interrupt timer

2.PIT简介

PIT时钟源为AIPS_SLOW_CLK,其中RTI时钟为SIRC_CLK,用于在standby模式下唤醒CPU。
PIT共有3个instance,每个instance又有4个channel。其中PIT_0可以被链接成为一个64bit的定时器(正常为32bit的定时器)
PIT定时器为向下计数器,counter值写在LDVAL registers中。
在这里插入图片描述

3.STM简介

STM时钟来源于AIPS_PLAT_CLK or FXOSC or FIRC,可以在CGM中选择
3个stm instance,每个instance有4个32bit的compare channel,每个channel都有独立的中断。
1个32-bit的向上计数器,具有自己独立的8位预分频器,可进行0–256级分频。
在这里插入图片描述

4.EB配置

4.1.模块依赖关系:

在这里插入图片描述

主要为GPT模块,其对Mcl有依赖(主要是emios的依赖,若只使用STM和PIT只需加入此模块而无需配置此模块)。Platform用来配置定时器相关的中断,Mcu主要用来配置定时器的时钟频率。Port和Dio用来点灯方便观察实验现象。

4.2.Mcu配置

Mcu中主要是打开相关timer的外设时钟以及各时钟频率的时钟源选择和分频系数配置。

4.2.1.开外设时钟

打开用到的相关外设时钟:PIT0和STM0
在这里插入图片描述

4.2.2.配置时钟源及分频系数

4.2.2.1.STM0时钟配置

根据手册,可以看到STM0的时钟源有:AIPS_PLAT_CLK、FX0SC_CLK、FIRC_CLK.
在这里插入图片描述

此处,我们选择AIPS_PLAT_CLK作为STM0的时钟源,如图所示:
在这里插入图片描述

1.根据上一级时钟分频可以看到AIPS_PLAT_CLK的时钟为80MHz,1处的分频系数1需要+1作为最终的分频系数,即填1表示分频系数为2,填0表示分频系数为1.因此可以看到2处的最终时钟为40MHz
在这里插入图片描述

4.2.2.2.PIT0时钟配置

根据手册,可以看到除RTI外,PIT0的唯一时钟来源为AIPS_SLOW_CLK
在这里插入图片描述

我们将分频系数配置为3,实际为4,分频后频率为40MHz
在这里插入图片描述

当然更上一级的时钟如PLL_PHI0、PLL_PHI1、PLL_VCO等只在MCUPLL中配置,此处不做赘述。如下图所示:
在这里插入图片描述

4.3.Platform配置

使能pit0和stm0的中断
在这里插入图片描述

添加相应的中断处理函数
在这里插入图片描述

4.4.Gpt配置

4.4.1.打开定时器通道和中断

在这里插入图片描述

4.4.2.配置Gpt参考时钟

在这里插入图片描述

参考时钟来源:
在这里插入图片描述

4.4.3.GptPit配置

在这里插入图片描述

4.4.4.GptSTM配置

在这里插入图片描述

STM有自己独立的预分频器,这个预分频属于stm本身,跟上一级时钟无关。
上图中的两个stm预分频器,第一个是正常时候使用的,第二个是为双时钟模式准备的,一般不使用。配置为1即可。要使用需要打开如下的宏:
在这里插入图片描述

4.4.5.GptChannelConfiguration配置

添加前面配置的通道:
在这里插入图片描述

内部配置:以pit为例,stm同理
在这里插入图片描述

4.4.6.Generale配置

根据手册可知,RTC/SWT/PIT的RTI功能均可作为唤醒源使用
在这里插入图片描述

如果单纯的只使用定时器,则不需要打开下图中的功能:
在这里插入图片描述

若打开PredefTimerFunctionalityApi,则需要打开PREDEF timer,需要进行如下的时钟配置:
在这里插入图片描述

上述在选择GptHwChannel时需要在GptHwConfiguration中打开相应的通道:
在这里插入图片描述

也就是说PREDEF timer是一个与低功耗有关的定时器。

5.S32DS配置

添加相应的驱动模块:
在这里插入图片描述

Main函数中进行相关模块初始化,开启对应通达的定时器,使能相关回调函数。
在这里插入图片描述

根据EB的配置,编写相应的回调函数:
在这里插入图片描述

  • 12
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值