【电机控制器】FM33LF015芯片——PWM输出
@TOC
前言
使用工具:
1.ARM仿真器/J-OBV2仿真器
提示:以下是本篇文章正文内容,下面案例可供参考
一、接线
VCC——3.3
GND——GND
SWDIO——SWDIO
SWCLK——SWCLK
二、32 位低功耗定时器(LPTIM32)
三、代码
#include "mf_config.h" /** * @brief LPTIM32_TimerBase Initialization function * @param void * @retval None */ /* 占空比:CRR/ARR=1-500/1000=50% */ /* PWM周期:ARR*PSC/PCLK=1000*8/8M=0.001s=1ms */ void MF_LPTIM32_TimerBase_Init(void) { FL_LPTIM32_InitTypeDef TimerBase_InitStruct; TimerBase_InitStruct.clockSource = FL_CMU_LPTIM32_CLK_SOURCE_APBCLK; TimerBase_InitStruct.prescalerClockSource = FL_LPTIM32_CLK_SOURCE_INTERNAL; /* PSC=8 */ TimerBase_InitStruct.prescaler = FL_LPTIM32_PSC_DIV8;//FL_LPTIM32_PSC_DIV8 TimerBase_InitStruct.autoReload = 999; TimerBase_InitStruct.mode = FL_LPTIM32_OPERATION_MODE_NORMAL; TimerBase_InitStruct.onePulseMode = FL_LPTIM32_ONE_PULSE_MODE_CONTINUOUS; TimerBase_InitStruct.triggerEdge = FL_LPTIM32_ETR_TRIGGER_EDGE_RISING; TimerBase_InitStruct.countEdge = FL_LPTIM32_ETR_COUNT_EDGE_RISING; FL_LPTIM32_Init(LPTIM32, &TimerBase_InitStruct); } /** * @brief LPTIM32_Channel1 Initialization function * @param void * @retval None */ void MF_LPTIM32_Channel1_Init(void) { FL_GPIO_InitTypeDef GPIO_InitStruct; FL_LPTIM32_OC_InitTypeDef LPTIM32_InitStruct; GPIO_InitStruct.pin = FL_GPIO_PIN_8; GPIO_InitStruct.mode = FL_GPIO_MODE_DIGITAL; GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL; GPIO_InitStruct.pull = FL_DISABLE; GPIO_InitStruct.remapPin = FL_ENABLE; GPIO_InitStruct.analogSwitch = FL_DISABLE; FL_GPIO_Init(GPIOA, &GPIO_InitStruct); LPTIM32_InitStruct.compareValue = 799;//499 LPTIM32_InitStruct.OCPolarity = FL_LPTIM32_OC_POLARITY_NORMAL; FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_1, &LPTIM32_InitStruct); } void LPTIM32_Setup(void) { FL_LPTIM32_Enable(LPTIM32); } void LPTIM32_Loop(void) { }
四、PWM周期、占空比理论计算
/* 占空比:1-CRR/ARR=1-500/1000=50% /
/ PWM周期:ARR*PSC/PCLK=1000*8/8M=0.001s=1ms */
五、实验
1ms20%
1ms50%
2ms 50%
六、参考资料
PWM原理 PWM频率与占空比详解
STM32 PWM占空比和信号周期的控制因素分析
总结
本文仅仅简单介绍了【电机控制器】FM33LF015芯片——PWM输出,评论区欢迎讨论。
Top comments (0)