S32K148 SDK3.0 PE配置 PWM

前言

S32K1xx Series Reference Manual的pdf文档45章介绍的是FTM(FlexTimer Module), S32K148有7个FTM:
在这里插入图片描述
本节中用到的是FTM4, Channel2, 使用引脚PTE22, 外挂一颗无源蜂鸣器:
在这里插入图片描述
蜂鸣器参数:
在这里插入图片描述
只要给4kHz, 50%占空比, 蜂鸣器就可以正常响了.

建立工程

打开S32 Design Studio for ARM, 接下来步骤:

  • File -> New -> S32DS Application Project
  • Processors 选择 S32K148, Project Name 填你自己的工程名
  • Select SDK: SDKs 选择 S32K148_SDK 3.0.0, Debugger选择J-Link, Finish.

ProcessorExpert配置

双击工程名, 点击Components窗口Components目录下的 pin_mux:PinSetting, 找到FTM -> FTM4 -> Channel 2, 选择PTE22, Output:在这里插入图片描述
Component Library中双击添加pwm_pal组件, 配置pwm_pal, 选择FTM4, Channel 2, 由于时钟源是System clock(实际测试48MHz), 预分配1, 得到4kHz只需要设置Period为12000, 占空比50%取一半, duty设置为6000, 注意Period取值范围[2, 65535]:
在这里插入图片描述
点击生成代码:
在这里插入图片描述

补全代码

main函数中系统和引脚的初始化:

  /* Write your code here */
  /* For example: for(;;) { } */
  CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,
                 g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);
  CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT);
  PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);

初始化PWM:

    /* Initialize PWM */
    PWM_Init(&pwm_pal1Instance, &pwm_pal1Configs);

这一步后, 4kHz, 50%占空比的方波就出来了, 蜂鸣器直接就开始响了, 怎么关闭呢? 看一下pwm_pal中可用的函数:
在这里插入图片描述
没有开始停止函数, 实际上, 只要把占空比设置为0, 就相当于停了, 这里让蜂鸣器响1s后停:

    /* Initialize PWM */
    PWM_Init(&pwm_pal1Instance, &pwm_pal1Configs);
    
    for (uint32_t i = 0; i < 2989000; i++);	//1s
    
	uint32_t duty = 0;
	uint8_t channel = pwm_pal1Configs.pwmChannels[0].channel;
    PWM_UpdateDuty(&pwm_pal1Instance, channel, duty);

    while(1) {
    }

调试运行, 蜂鸣器响一声后停止, 用示波器查看到的波形:
在这里插入图片描述

完整工程下载

https://download.csdn.net/download/weifengdq/12012194

微信公众号

欢迎扫描二维码关注本人微信公众号, 及时获取或者发送给我最新消息:
在这里插入图片描述

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值