开发板测评系列三 | S32K312基于Gpt模块闪灯

本文将通过在S32DS中导入官方Gpt例程并进行适配,实现开发板LED的控制,通过这个工程我们将了解开发板的Gpt模块的使用。

软件环境

  1. S32DS For S32 Workplace;
  2. S32K3 RTD AUTOSAR 4.4 SDK

硬件环境

  1. Knight S32K312 评估版
  2. J-Link Debug 烧录器 

打开S32DS,点击“File” “New” “S32DS Project from Example”,选择出现的对话框中的“S32K3 RTD AUTOSAR 4.4 2.0.1 D2207 Example Projects”,在下面找到“Gpt S32K3xx Examples”,选择 “Gpt_Example_S32K312”,点击“Finish”完成项目导入。

和之前一样我们先打开项目文件夹下的“Gpt_example_DS.mex

 ”,进入到项目的配置页面,再次页面点击

更改芯片封装为100pin。

选择后更新源代码,外设模块会报错。

我们可以先选择熟悉的模块比如 Port 模块解决问题。打开 Port 模块后,可以看到 PortPin Mscr 是错误的,这里和之前博文提到的情况相同,是切换封装后,官方开发板的LED在Knight评估板上不对应了。这里我们改为 PTB10,即 Mscr = 42.

此时我们更新源代码,没有错误了。Port这一部分在之前博文已经介绍。接下来我们来了解下Gpt模块。在外设中点击Gpt模块查看配置。

在GPT所有配置页中选择GptChannelConfigSet,这个是主要配置Gpt参数的一页。如上图,初始为1个Gpt channel配置,Hwlp选择为PIT,即依赖的硬件模块为PIT周期中断定时器)。计数模式GptChannelMode为持续计数模式,计数频率为24000000Hz,即24MHz,这个数字是固定的,因为我们在紧接着的选择的时钟配置,Gpt的模块的始终实际为AIPS_SLOWCLK,在Mcu模块被分频成了24MHz。

同时我们也可以配置Gpt的计数完成的回调函数,起个名字为“Gpt_PitNotification”,以便于在回调函数中实现LED的闪烁。

接下来是选择Gpt的外设源,选择GptHwConfiguration选项卡,可以选择Gpt的硬件触发源,这里默认选择为PIT模块的CH0.

在下一个选项卡GptConfigurationOfOptApiServices里勾选“GptEnableDisableNotificationApi”,以生成回调函数。

选择GptDriverConfiguration选项卡,可以看到Driver层的Gpt的一些配置,重要的是下方“GptClockReferencePoint”,这里会指向Mcu模块的时钟配置。

外设中选择Mcu模块,在“McuModuleConfiguration”->“McuClocksettingConfig”->“McuClockReferencePoint”可以看到我们在Gpt模块中引用的时钟源。

 回到项目代码,打开“main.c”,查看代码。可以看到相较于之前Port项目的函数,还多出三个Gpt模块的函数,依次为1初始化函数,2定时器启动函数和3回调函数初始化函数。

只有2定时器初始化函数的第二个参数,可以有我们自己来定。前面得到Gpt的ReferenceClock为24MHz,因此此处我们可以填入的最大计数值为24000000,即为1秒重装倒计时,并触发回调函数。如果我们想要实现1秒LED灯翻转,此处应修改为24000000.

 While循环部分的含义几位10次LED翻转,翻转时机“toggleLED”可以在回调函数中置位。

将例程编译下载到Knight评估板后,就可以看到蓝色LED灯1秒翻转闪烁10次了。

 文章来自“S32K312 开发板评测活动”测评者:阚準 

欢迎在博文下方留言评论,我们会及时回复您的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值