找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2347|回复: 0
打印 上一主题 下一主题
收起左侧

STM32PWM输出实验源码与解释

[复制链接]
跳转到指定楼层
楼主
ID:710218 发表于 2020-3-18 16:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
什么是PWM?   

           脉冲宽度调制(Pulse Width Modulation,PWM)简称脉宽调制

        是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术

        简而言之,PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。
//TIM14 PWM部分初始化
//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void TIM14_PWM_Init(u32 arr,u32 psc)
{                                                         
        //此部分需手动修改IO口设置
        RCC->APB1ENR|=1<<8;         //TIM14时钟使能   
        RCC->AHB1ENR|=1<<5;           //使能PORTF时钟        
        GPIO_Set(GPIOF,PIN9,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);//复用功能,上拉输出
        GPIO_AF_Set(GPIOF,9,9);        //PF9,AF9
        
        TIM14->ARR=arr;                        //设定计数器自动重装值
        TIM14->PSC=psc;                        //预分频器不分频
        TIM14->CCMR1|=6<<4;          //CH1 PWM1模式                 
        TIM14->CCMR1|=1<<3;         //CH1 预装载使能           
        TIM14->CCER|=1<<0;           //OC1 输出使能        
        TIM14->CCER|=1<<1;           //OC1 低电平有效           
        TIM14->CR1|=1<<7;           //ARPE使能
        TIM14->CR1|=1<<0;            //使能定时器14                                                                                          
}  
  通过修改TIM14->CCR1的值可以修改PWM的占空比,可以使用宏定义,这样使修改更加方便。

#define PWM_VAL TIM14->CCR1   
        主程序中:

TIM14_PWM_Init(100-1,8400-1); //10Khz的计数频率,100HZ的PWM.

        如果设置PWM_VAL的值为50,就产生了占空比为50%为的PWM。


全部资料51hei下载地址:
PWM输出实验.rar (279.95 KB, 下载次数: 74)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表