当前位置:网站首页>STM32学习笔记(PWM输出)
STM32学习笔记(PWM输出)
2022-08-09 05:02:00 【lilei668】
本人采用Cube 进行的STM32库函数编程,PWM波的输出配置以及代码如下所示:(经过实际实验证明非常好用)
以下为定时器PWM输出函数,注意:使用时一定要把原来输出函数注释掉。
注释代码如下:
// sConfigOC.OCMode = TIM_OCMODE_PWM1;
// sConfigOC.Pulse = 0;
// sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
// sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
// if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
// {
// _Error_Handler(FILE, LINE);
// }
// if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
// {
// _Error_Handler(FILE, LINE);
// }
// if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
// {
// _Error_Handler(FILE, LINE);
// }
// if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
// {
// _Error_Handler(FILE, LINE);
// }
void PWM_Change_Duty(float x,float y,float z,float w)
{
TIM_OC_InitTypeDef sConfigOC;
sConfigOC.OCMode = TIM_OCMODE_PWM1;//pwm输出模式配置
sConfigOC.Pulse = x;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
//pwm输出停止函数
if(HAL_TIM_PWM_Stop(&htim4,TIM_CHANNEL_1) != HAL_OK)
{
_Error_Handler(FILE, LINE);//错误等待函数
}
//pwm输出配置函数
if(HAL_TIM_PWM_ConfigChannel(&htim4,&sConfigOC,TIM_CHANNEL_1) != HAL_OK)
{
_Error_Handler(FILE,LINE);
}
//pwm输出开始函数
if(HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_1)!= HAL_OK)
{
_Error_Handler(FILE,LINE);
}
sConfigOC.Pulse = y;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
//pwm输出停止函数
if(HAL_TIM_PWM_Stop(&htim4,TIM_CHANNEL_2) != HAL_OK)
{
_Error_Handler(FILE, LINE);//错误等待函数
}
//pwm输出配置函数
if(HAL_TIM_PWM_ConfigChannel(&htim4,&sConfigOC,TIM_CHANNEL_2) != HAL_OK)
{
_Error_Handler(FILE,LINE);
}
//pwm输出开始函数
if(HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_2)!= HAL_OK)
{
_Error_Handler(FILE,LINE);
}
sConfigOC.Pulse = z;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
//pwm输出停止函数
if(HAL_TIM_PWM_Stop(&htim4,TIM_CHANNEL_3) != HAL_OK)
{
_Error_Handler(FILE, LINE);//错误等待函数
}
//pwm输出配置函数
if(HAL_TIM_PWM_ConfigChannel(&htim4,&sConfigOC,TIM_CHANNEL_3) != HAL_OK)
{
_Error_Handler(FILE,LINE);
}
//pwm输出开始函数
if(HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_3)!= HAL_OK)
{
_Error_Handler(FILE,LINE);
}
sConfigOC.Pulse = w;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
//pwm输出停止函数
if(HAL_TIM_PWM_Stop(&htim4,TIM_CHANNEL_4) != HAL_OK)
{
_Error_Handler(FILE, LINE);//错误等待函数
}
//pwm输出配置函数
if(HAL_TIM_PWM_ConfigChannel(&htim4,&sConfigOC,TIM_CHANNEL_4) != HAL_OK)
{
_Error_Handler(FILE,LINE);
}
//pwm输出开始函数
if(HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_4)!= HAL_OK)
{
_Error_Handler(FILE,LINE);
}
}
边栏推荐
猜你喜欢
随机推荐
Quantitative Genetics Heritability Calculation 1: Parent-Child Regression Method
GraalVM安装
C进阶 - 程序的编译(预处理操作) + 链接
快速上手Shell,看这一篇就够了
浅谈产品降本设计
剑指Offer-二叉树路径问题总结
2022-08-07 反思
matlab simulink 温度控制时延系统 模糊pid和smith控制
【暑期每日一题】洛谷 P5724 【深基4.习5】求极差 / 最大跨度值
Harmony OS ets ArkUI 】 【 】 development create a view and building layout
What is it like to work at Kuaishou?
Golang 常见知识点整理
【暑期每日一题】洛谷 P4325 [COCI2006-2007#1] Modulo
Software testing method is introduced in detail
ELTEK电源维修SMPS5000SIL整流器模块故障分析及特点
JS-DOM-全局、局部、隐式变量,数组()\函数、 prompt输入对话框、confirm(确定用户的决定-弹出对话框)
MySQL---performance schema
C Advanced - Program Compilation (Preprocessing) + Linking
mysql内容不存在的报错
Oracle01-安装与卸载