本文主要是介绍NXP实战笔记(六):S32K3xx基于RTD-SDK在S32DS上配置PWM发波,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
1、概述
2、SDK配置
2.1、Port配置
2.2、Emios_Mcl_Ip
2.3、Emios_Pwm
2.4、代码示例
1、概述
针对S32K3xx芯片,产生PWM的硬件支持单元仅有两个,分别是eMiosx与Flexio.
生成PWM的顺序,按照单片机所用资源进行初始化执行如下
- 初始化MCU的时钟单元
- 初始化MCL的eMios或者Flexio实例配置
- 初始化Port口
- 初始化PWM模块
2、SDK配置
2.1、Port配置
第一步需要给Port分配指定的功能,例如此处的eMios发波
2.2、Emios_Mcl_Ip
这个地方是建立Count bus的地方
Master Bus Mode Type:计数方式,向上或者向下计数等。
Default period:默认周期值。
PWM exclusive access :是否作为PWM的Count Bus。
2.3、Emios_Pwm
Mode select:模式选择,目前选择EMIOS_PWM_IP_MODE_OPWMB
前面emios mcl里面选择了 ch22作为Count bus 也就是Bus F
Duty:相对于周期的Ticks,按照比例默认输出的占空比
Period:周期Ticks的设定
2.4、代码示例
初始化Emios_Mcl_Ip_Init(0U, &Emios_Mcl_Ip_0_Config_BOARD_INITPERIPHERALS);Emios_Pwm_Ip_InitChannel(0U, &Emios_Pwm_Ip_I0_Ch20);
上面两个特别重要,要是没有初始化,那么无法产生PWM
执行代码
假设需要中心对齐或者移位操作,需要设定以下函数
3、测试结果
这篇关于NXP实战笔记(六):S32K3xx基于RTD-SDK在S32DS上配置PWM发波的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!