历史上的今天

今天是:2024年11月12日(星期二)

2021年11月12日 | TIMER之pwm应用

发布者:SparklingMoon 来源: eefocus关键字:TIMER  pwm应用  初始化 手机看文章 扫描二维码
随时随地手机看文章

TIMER之pwm应用

//TIM3 PWM部分初始化

//PWM输出初始化

//arr:自动重装值

//psc:时钟预分频数      //PB5,TIMER3_CH2


void TIM3_PWM_Init(u16 arr,u16 psc)

{  

    GPIO_InitTypeDef GPIO_InitStructure;         //GPIO 结构体初始化

    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;    //基本定时器结构体初始化

    TIM_OCInitTypeDef  TIM_OCInitStructure;              //output compare 结构体初始化

    

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);    //使能定时器3时钟

     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB  | RCC_APB2Periph_AFIO, ENABLE);  //使能GPIO外设和AFIO复用功能模块时钟

    

     GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //Timer3部分重映射  TIM3_CH2->PB5    

 

   //设置该引脚为复用输出功能,输出TIM3 CH2的PWM脉冲波形    GPIOB.5

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //TIM_CH2

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIO

 

   //初始化TIM3

    TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值

    TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值

    TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim

    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式

    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位

    

    //初始化TIM3 Channel2 PWM模式    

    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2

     TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能

    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高

    TIM_OC2Init(TIM3, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM3 OC2


    TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);  //使能TIM3在CCR2上的预装载寄存器

 

    TIM_Cmd(TIM3, ENABLE);  //使能TIM3

    


}


//通道2输出比较函数


void TIM_SetCompare2(TIM_TypeDef* TIMx, uint16_t Compare2)

{

  /* Check the parameters */

  assert_param(IS_TIM_LIST6_PERIPH(TIMx));

  /* Set the Capture Compare2 Register value */

  TIMx->CCR2 = Compare2;

}


该模式下,在TIMx_CCRx影子寄存器和计数器之间的比较,相应的标志也会被修改。因此仍然会产生相应的中断和DMA请求。


调用:


在main函数中先初始化,void TIM3_PWM_Init(u16 arr,u16 psc),  在循环处理中进行输出比较,再进行参数处理即可


关键字:TIMER  pwm应用  初始化 引用地址:TIMER之pwm应用

上一篇:stm32时钟及其滴答定时器
下一篇:STM32中断及NVIC概述

推荐阅读

      华为麒麟970通过集成NPU神经网络单元,开启了手机AI时代,不过这个NPU并非华为自研,而是来自AI独角兽寒武纪科技的A1处理器IP。  今年,寒武纪科技发布了最新的AI 1M处理器IP,华为则带来了麒麟980,首次集成双核NPU,而且二者都是7nm制造工艺,让人不由得联想麒麟980依然采纳了寒武纪科技IP,但双方都从未披露相关信息。  10月10日的全...
仿真原理图如下 全部资料分享,可设置温度报警的上下限,5641四位共阳数码管显示温度,自己曾经做的设计,实测可行,提供给有需要的人 单片机源程序如下:#include <AT89X52.h> #define uint unsigned int#define uchar unsigned char //宏定义#define SET P3_1 //定义调整键#define...
新浪数码讯 11月12日下午消息,三星在上海举行发布会,正式推出了全新一代Exynos 1080处理器。这款5nm工艺制程处理器不仅搭载了最新Cortex-A78 CPU,而且还采用了Mali-78 GPU,同时兼顾高性能和低功耗的特性,vivo手机将首发Exynos 1080处理器。三星宣布vivo首发新旗舰芯片今年是手机芯片变革的一年,将从全面从7nm迈进到5nm时代,此前,华为公布了麒...
目前,越来越多的汽车、工业和其他应用都在强调功能安全性(functional safety),其开发过程也需要先进和完善的工具链支持,以及一些重要的开发工具使用经验。作为功能安全性产品的研发工程师,一定听说过类似MISRA C的静态代码检查,以及其他一些代码标准和自动化检查工具。但是,在日常的开发流程中,仅仅知道这些标准并不代表着能够高效地让代码符合...

史海拾趣

问答坊 | AI 解惑

HT1380串行时钟芯片

HT1380串行时钟芯片一般来说,HT系列的芯片在串行口的应用一直以来就是很好的在单片机 这个领域,串行时钟一直占着很重要的位置…

查看全部问答∨

Introduction to NI VeriStand

Introduction to NI VeriStand…

查看全部问答∨

工程师们看过来——电气测量时,聪明人所做的10件糊涂事

本人搜集到的一篇很好的文章,因此转载给各位大虾,希望对工程师们有所帮助: 何靠与电打交道来谋生的人很快都会对任何“带电”的物体生出理性的敬意,哪怕是“带电”的机会很小。然而,需要按时完成一项工作或者使某个关键设备恢复联机的紧迫压力 ...…

查看全部问答∨

evc托盘编程

使用evc4.0编写一个系统托盘,就是我的程序起来之后,不显示对话框,自动出现一个图标到右下角,通过双机图标,可以弹出对话框。 右键单击右下角图标,可以弹出一个菜单。 不知道如何实现这些功能,请兄弟姐妹们帮个忙!…

查看全部问答∨

请高手帮忙~~~在EVC下的2个函数没定义.

error C2065: \'GetRunningObjectTable\' : undeclared identifier error C2065: \'CreateItemMoniker\' : undeclared identifier 我用的是EVC 4.0+SP4…

查看全部问答∨

si4010有没有人用过,求探讨

si4010有没有人用过,求探讨,开发软件,调试软件,烧录工具等等…

查看全部问答∨

STM32的驱动库好用吗?效率高吗?优化的吗?准备上STM32

    N多年没买过开发板了,也没用过仿真器了。都是用软件编译调试好,直接ISP,然后通过串口命令开启调试信息的输出。    昨天买了块STM32F103全功能型开发板,他们的办事效率真低(深圳到广州通常当 ...…

查看全部问答∨

求IAR Embedded Workbench for MCS-51 完整版

各位高手,小弟求IAR Embedded Workbench for MCS-51完整版,有哪位高人有,能否分享一下。我的邮箱jinghongchen@126.com…

查看全部问答∨

猎头招聘

世界500强招聘压力传感器SAE,如有兴趣可发简历至:aerie.song@seek-jobs.com.cn 要求:至少五年以上相关工作经验,英文流利。…

查看全部问答∨

串口调试可能用到的小工具

串口调试精灵 串口调试时可以用的到…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多每日新闻

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved