STM32单片机实战开发笔记-PWM波输出频率及占空比配置【wulianjishu666】

单片机物联网开发资料:
链接:https://pan.baidu.com/s/1XzodQuML7CqZ4ZKinDGKkg?pwd=bgep
提取码:bgep

===========================================

PWM模块测试

  1. 功能描述

脉冲宽度调制模式:

  1. PWM边沿对齐模式:
  1. 向上计数配置

当TIMX_CR1寄存器中的DIR为低的时候执行向上计数,下面是一个PWM1模式1的例子,当TIMx_CNT < TIMX_CCRx时PWM信号OCxREF为高,否则为低。如果TIMx_CCRx中的比较值大于自动重装载值(TIMx_ARR),则OCxREF保持为"1",如果比较值为0,则OCxREF保持为"0",

  1. 向下计数配置

当TIMx_CR1寄存器的DIR位为高时执行向下计数

在PWM模式1,当TIMx_CNT > TIMx_CCRx时OCxREF为低,否则为高,如果TIMx_CCRx中的比较值大于TIMx_ARR中的自动重装载值,则OCxREF保持为"1",该模式下不能长生0%的PWM波形

  1. PWM中央对齐模式
  1. 主要特性

3、通用IO

|------|-----|-----|------|------|
| TIMx | CH1 | CH2 | CH3 | CH4 |
| TIM1 | PA8 | PA9 | PA10 | PA11 |
| TIM2 | PA0 | PA1 | PA2 | PA3 |
| TIM3 | PA6 | PA7 | PB0 | PB1 |
| TIM4 | PB6 | PB7 | PB8 | PB9 |

3、硬件电路

  1. 软件代码

/********************************************************************

* 文件 :pwm.c

* 版本 :V1

* 描述 :使用PWM来调节LED的亮度

* 说明 :使用TIM2的CH2通道,设置TIM2为PWM模式,输出PWM脉冲

********************************************************************/

#include"stm32f10x_lib.h"

/******************************************************

*函数名称:void GPIO_Configuration(void)

*函数功能:GPIO的配置,配置PA1为TIM2的PWM输出

*入口参数:无

*出口参数:无

******************************************************/

void GPIO_Configuration(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 使能APB2外设GPIOC时钟

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); // Enable TIM2

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //PA1 定时器的通道2

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_Init(GPIOA,&GPIO_InitStructure);

}

/*****************************************************

*函数名称:void TIM_Configuration(void)

*函数功能:TIM2的配置

*入口参数:无

*出口参数:无

*****************************************************/

void TIM_Configuration(void)

{

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

TIM_OCInitTypeDef TIM_OCInitStructure;

TIM_TimeBaseStructure.TIM_Prescaler = 0 ; //72M

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up ; //计数向上

TIM_TimeBaseStructure.TIM_Period = 0xff; //分频值

TIM_TimeBaseStructure.TIM_ClockDivision = 0x0; //分割

TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //PWM1模式(边沿对齐模式)

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //CH2通道有效

TIM_OCInitStructure.TIM_Channel = TIM_Channel_2; //通道2

TIM_OCInitStructure.TIM_Pulse = 0xff ; //占空比

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性为高电平

TIM_OC2Init(TIM2,&TIM_OCInitStructure);

// TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable); //使能预装载

TIM_Cmd(TIM2,ENABLE);

}

相关推荐
炸膛坦客7 小时前
单片机/C/C++八股:(二十六)IIC 专题(I²C)---- 上集
c语言·c++·单片机
MetrixAeroCore9 小时前
自动售货机库存上报异常物联网卡DNS解析失败修复教程
物联网
ANSIOT10 小时前
安朔科技蓝牙无感开锁方案,靠近自动解锁
网络·科技·物联网
微硬创新10 小时前
耐达讯自动化 CC-Link IE 转 PROFINET网关在污水厂智能化升级实战
人工智能·物联网·网络协议·自动化·信息与通信
遇乐的果园11 小时前
前端学习笔记-vue加载渲染优化
前端·笔记·学习
华清远见IT开放实验室12 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
遇乐的果园12 小时前
前端学习笔记-vue状态管理优化
前端·笔记·学习
摇滚侠13 小时前
Java 全栈开发实战教程 课程笔记 29-33
笔记
AI的探索之旅14 小时前
AI辅助原理图评审:电源去耦、BOOT引脚、VCAP——19项逐一核查,遗漏?不存在的
人工智能·vscode·嵌入式硬件
茯苓gao14 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习