stm32 pwm频率与周期计算

发布者:万童洁最新更新时间:2019-08-21 来源: eefocus关键字:stm32  pwm频率  周期计算 手机看文章 扫描二维码
随时随地手机看文章

在这里插入图片描述

频率

Fpwm = 100M / ((arr+1)*(psc+1))(单位:Hz)


arr 是计数值

psc 是预分频值

如:

3. 主频=100M

4. arr=100

5. psc=1000

100,000,000/100/1000=1000Hz


占空比

duty circle = TIM3->CCR1 / arr(单位:%)


TIM3->CCR1 是捕获比较寄存器

从下面代码可以看出TIM3->CCR1 就是对应的sConfigOC.Pulse

arr对应htim5.Init.Period = 999;

psc对应htim5.Init.Prescaler = 99;


如果 arr=1000,TIM3->CCR1=500则pwm的占空比为50%,通过修改CCR1可以修改占空比,修改arr可以修改频率


/* TIM5 init function */

void MX_TIM5_Init(void)

{

  TIM_MasterConfigTypeDef sMasterConfig = {0};

  TIM_OC_InitTypeDef sConfigOC = {0};


  htim5.Instance = TIM5;

  htim5.Init.Prescaler = 99;

  htim5.Init.CounterMode = TIM_COUNTERMODE_UP;

  htim5.Init.Period = 999;

  htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;

  if (HAL_TIM_PWM_Init(&htim5) != HAL_OK)

  {

    Error_Handler();

  }

  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;

  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;

  if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)

  {

    Error_Handler();

  }

  sConfigOC.OCMode = TIM_OCMODE_PWM1;

  sConfigOC.Pulse = 0;

  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;

  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;

  if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)

  {

    Error_Handler();

  }

  HAL_TIM_MspPostInit(&htim5);


}


static void TIM_OC1_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config){

...

/* Set the Capture Compare Register value */

  TIMx->CCR1 = OC_Config->Pulse;

}


关键字:stm32  pwm频率  周期计算 引用地址:stm32 pwm频率与周期计算

上一篇:STM32F429--STM32的PWM占空比产生与测量
下一篇:STM32 F1 TIM4 4通道PWM同时输出

推荐阅读最新更新时间:2024-11-08 17:20

基于WiFi的车载终端远程软件升级方法
引言 随着对系统功能、性能要求的不断提高,或为了消除缺陷,用户常常需要对嵌入式终端设备软件进行升级。目前嵌入式终端软件升级方法有专用工具烧写、在系统编程(ISP)和在应用编程(IAP)等。前两种方式需要专门的人员到达现场、甚至拆卸设备才能进行软件升级。IAP方式可由开发人员根据实际应用进行灵活设计,例如使用串口升级、USB升级等。 由于车载终端具有移动性、分布广泛、无法集中召回等特点,传统软件升级方案显得束手无策。远程软件升级方案能够为系统维护提供极大的方便,目前主流使用基于GPRS的IAP方式,但通常需要支付给运营商一定的费用。 根据某单位车辆管理系统的实际情况,本文设计出一种基于WiFi的远程软件升级方法。具有简单、便捷
[单片机]
基于WiFi的车载终端远程软件升级方法
STM32之内部温度传感器
和ADC的设置基本相同,算是ADC的扩展应用。 只是在计算方法上有变化,在adc的初始化程序里面做一些变动就可以了。 包含函数: (1)Main /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 实验平台 : ST 官方三合一套件 + 硬件 : STM32F103C8T6 + 开发平台 : IAR For ARM 5.40 + 仿真器 : J-Link + 日期 : 2010-10-28 + 频率 :HSE = 8MHz ,主频 = 72MHz +++++++++++++++++++++++++
[单片机]
<font color='red'>STM32</font>之内部温度传感器
嵌入式开发中需要注意的几个C用法介绍
使用STM32开发的朋友不知道是否有发现过这样的一些宏定义?如下: #if defined (__CC_ARM) #pragma anon_unions #endif 看到上面的语句一开始确实搞不懂为什么要写这些东西,通过上网去查询,才搞明白这其中的使用原理。 上面的代码段我们可以看到两部分的内容: 1) __CC_ARM 2) #pragma anon_unions 这两个都有啥用呢?待我一一道来! 1、__CC_ARM 是 ARM 编译中的宏选项 __CC_ARM 是一个编译器的选项,在ARM开发中根据开发环境的不同,有好几个可选的宏选项。 这些选项可以查看所开发的芯片的内核文件,比如我使用
[单片机]
STM32按键控制灯
/*---------------------------------------------------------------------------------- 文件名称:控制LED2,LED3闪烁 硬件平台:STM32F103 开发板 作者 :求是 固件库 :V3.5 -----------------------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/ #include st
[单片机]
基于STM32的无线飞鼠(二)
在前一篇博客中讲了下一些题外话,从本篇开始讲讲重点的知识,说说无线飞鼠过程用到的模块 细说MPU6050 一、 MPU6050简介 二、 细节问题 三、 相关技术 四、 操作步骤 五、 实现代码 一、 MPU6050简介 MPU6050集成了3轴加速度和3轴陀螺仪,是一款不错的传感器模块,可以用在很多方面,比如:四轴飞控、空中鼠标、两轮平衡车、GPS定位方面、游戏机、3D遥控器、平板设备等等,此模块给我们提供了强大的数据供应,由于将加速度和陀螺仪集成到了一起,免去了组合这两个模块时之间的轴差问题,减少了包装问题,这两年很火,成了DIY制作者的最爱。 二、 细节问题 在淘宝上买MPU6050时,要注意一下几点
[单片机]
基于<font color='red'>STM32</font>的无线飞鼠(二)
STM32 16位IO口操作的一些教训
最近在用TFT屏的时候走啦不少弯路,因为TFT屏都是16位的,所以大部分的都是采用一组IO口对应16个数据位刚好并口传输数据,最近因为IO口紧缺,所以想要改成串口,但是发现串口刷新屏幕太慢所以最后改成8位的并口,但是STM32操作IO口的寄存器是16位的。也就是说用并口的话一起传输数据进去虽然只用8位但是操作还是16位一起操作,虽然有8位没用到但是还是在传输数据进去的时候被一起操作,会把不用的8位的值一起覆盖。 #define DATAOUT(x) GPIOB- ODR=x; //数据输出 如上当调用宏的时候整个B端口一起被操作。 方法1: ODR配置法,可以直接使用 GPIO- ODR = value N;给对应的IO口
[单片机]
STM32存储器 — <3> STM32实现IAP
在对STM32存储器结构及相关知识了解后,我们就可以进行IAP的设计了。 在上一篇笔记中,进行了一个简单的IAP程序结构,以及和User App程序的相互联系的系统设计。 本篇对IAP实现的细节进行了较为详细的论述,包括源码结构的设计;我们从上位机(PC C#)和下位机(MCU C)共同描述IAP功能的实现过程。 1 STM32的IAP实现平台 IAP功能的实现需要两个方面(上位机和STM32上的IAP程序)的密切合作。因此,我们除了需要知道STM32芯片上的IAP程序结构,我们还需要了解上位机的程序结构,这样才能使上位机和STM32很好的相互工作。 下位机(指的是STM32构成的单片机系统): 本下位机系统使用C语言进行
[单片机]
STM32时钟系统介绍与总结
时钟树: 1. HSI振荡器时钟 The HSI clock signal is generated from an internal 8 MHz RC Oscillator and can be used directly as a system clock or divided by 2 to be used as PLL input. The HSI RC oscillator has the advantage of providing a clock source at low cost (no external components). It also has a faster startup time than
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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