• STM32 基于定时器的PWM发生器


    脉冲宽度调制(PWM),是英文“Pulse Width Modulation” 的缩写,简称脉宽调制,是利用
    微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽
    度的控制

    STM32 的定时器除了 TIM6 7。其他的定时器都可以用来产生 PWM 输出。其中高级定
    时器 TIM1 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4
    路的 PWM 输出。

     

    要想输出想要的PWM波形,我们首先要了解定时器的时钟源,TIMxCLK为 定时器1-8提供时钟时钟,默认情况下以72Mhz,保证波形精度。

     我们也可在外设中对时钟进行分频:

    定时器时钟经过 PSC 预分频器之后,即 CK_CNT,用来驱动计数器计数。PSC 是一个
    16 位的预分频器,可以对定时器时钟 TIMxCLK 进行 1~65536 之间的任何一个数进行分频。
    具体计算方式为:CK_CNT=TIMxCLK/(PSC+1)。

    首先开启对应时钟,再初始化管脚为AF_PP模式

    初始化定时器:

    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;//定义初始化结构体
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能定时器3时钟 默认72Mhz
    //初始化TIM3
    TIM_TimeBaseStructure.TIM_Period = arr; //自动重装载寄存器的值

    //ARR : 决定PWM周期
    //T=(TIM_Period+1)*(TIM_Prescaler+1)/TIMxCLK
    TIM_TimeBaseStructure.TIM_Prescaler =psc; //TIMX预分频的值 
    TIM_TimeBaseStructure.TIM_ClockDivision = 0; //时钟分割
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数

    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据以上功能对定时器进行初始化

    设置具体输出模式:
    TIM_OCInitTypeDef  TIM_OCInitStructure;//定义结构体
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;//选择定时器模式,TIM脉冲宽度调制模式2,1,2模式差不多 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//比较输出使能,决定最终的输出比较信号OCx 是否通过外部引脚输出。
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;//输出比较极性高,决定输出有效电平极性高低
    TIM_OCInitStructure.TIM_Pulse = CCR;//设置有效电平的输出时间
    //T_high=T*(CCR/Period) TIM_OC2Init(TIM3, &TIM_OCInitStructure);//根据结构体信息进行初始化
    TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);  //使能定时器TIM2在CCR2上的预装载值


     TIM_Cmd(TIM2, ENABLE);// 使能计数器



     

  • 相关阅读:
    SQL Server数据库一直显示“正在还原”的解决方法
    查看MSSQL 数据表信息使用情况
    sql server 查询缺失的索引
    windows server2012R2 上 .net core IIS 部署--应用程序池 自动停止
    MSSQL 数据库日志文件收缩
    SQL Server GUID转19位字符串
    SQL SERVER 之全文索引使用
    MSSQL 统计整个数据库所有表数据记录数
    freePCRF免费版体验
    Hortonwork Ambari配置Hive集成Hbase的java开发maven配置
  • 原文地址:https://www.cnblogs.com/geek-wireless/p/8869931.html
Copyright © 2020-2023  润新知