文章目录

  • 1、高级定时器和通用定时器
  • 2、配置产生PWM

1、高级定时器和通用定时器

  高级定时器:TIM1、TIM8
  Tips:黄色词条为高级定时器相对于通用定时器的功能。

  通用定时器:TIM2~TIM5

  基本定时器:TIM6、TIM7
  Tips:独有触发DAC的同步电路。

2、配置产生PWM

  计算公式为:溢出时间Tout(单位秒)=(arr+1)(psc+1)/Tclk
  计算实例:20MS = (59999+1)*(23+1)/72000000
  arr->系统自动装填数字;psc->预分频系数
  使用F103C8系列单片机产生PWM

#include "Sys.h"
//公式为:溢出时间Tout(单位秒)=(arr+1)(psc+1)/Tclk
//20MS = (59999+1)*(23+1)/72000000
void ServoInit()//定时器1产生50HZ的PWM
{GPIO_InitTypeDef GPIO;TIM_OCInitTypeDef TIM_OC;TIM_TimeBaseInitTypeDef TIM_Time;//RCC_APB1PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_TIM1,ENABLE);//IO配置GPIO.GPIO_Pin = GPIO_Pin_11;GPIO.GPIO_Speed = GPIO_Speed_50MHz;GPIO.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽GPIO_Init(GPIOA,&GPIO);//PWM模式及通道设置TIM_OC.TIM_OCMode = TIM_OCMode_PWM1;//CNT<CCR1为有效电平TIM_OC.TIM_OCPolarity = TIM_OCPolarity_High;//有效电平:高电平TIM_OC.TIM_OutputState = TIM_OutputState_Enable;//输出使能TIM_OC4Init(TIM1,&TIM_OC);TIM_OC4PreloadConfig(TIM1,TIM_OCPreload_Enable);//PWM周期设置TIM_Time.TIM_Period = 60000-1;//系统自动装填数字TIM_Time.TIM_Prescaler = 24-1;//预分频系数TIM_Time.TIM_CounterMode = TIM_CounterMode_Up;//向上计数溢出TIM_Time.TIM_ClockDivision = TIM_CKD_DIV1;//时钟分频因子TIM_Time.TIM_RepetitionCounter = 0;TIM_TimeBaseInit(TIM1,&TIM_Time);TIM_Cmd(TIM1,ENABLE);//定时器使能TIM_CtrlPWMOutputs(TIM1, ENABLE);//pwm输出高级定时器特有//舵机归中TIM_SetCompare4(TIM1,4500);//舵机归中4500
}void MotoInit(void)//定时器4产生1200HZ的PWM
{GPIO_InitTypeDef GPIO;TIM_OCInitTypeDef TIM_OC;TIM_TimeBaseInitTypeDef TIM_Time;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);GPIO.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;GPIO.GPIO_Speed = GPIO_Speed_50MHz;GPIO.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_Init(GPIOB,&GPIO);TIM_OC.TIM_OCMode = TIM_OCMode_PWM1;TIM_OC.TIM_OutputState = TIM_OutputState_Enable;TIM_OC.TIM_OCPolarity = TIM_OCPolarity_High;TIM_OC1Init(TIM4,&TIM_OC);TIM_OC2Init(TIM4,&TIM_OC);TIM_OC3Init(TIM4,&TIM_OC);TIM_OC4Init(TIM4,&TIM_OC);TIM_Time.TIM_Prescaler = 0;TIM_Time.TIM_CounterMode = TIM_CounterMode_Up;TIM_Time.TIM_Period = 60000-1;TIM_Time.TIM_ClockDivision = TIM_CKD_DIV1;TIM_TimeBaseInit(TIM4,&TIM_Time);TIM_Cmd(TIM4,ENABLE);MotoControl(0,0);
}

【STM32】高级定时器、通用定时器和基本定时器---配置寄存器产生PWM相关推荐

  1. stm32高级定时器 基础知识

    stm32高级定时器 高级定时器时基单元: 包含一个16位自动重装载寄存器 ARR 一个16位的计数器CNT,可向上/下计数 一个16位可编程预分频器PSC,预分频器时钟源有多种可选,有内部的时钟.外 ...

  2. STM32 高级定时器周期、频率、占空比、对外输出电压详解

    STM32 高级定时器 最近在研究电机,对TIM定时器研究了一些,将一些存在疑惑的问题,通过试验和示波器分析,得到以下结论,供大家学习参考 1.介绍输出电压高低判断 输出比较时:OC1对外输出电压为示 ...

  3. stm32 高级定时器

    原文网址:http://jingyan.eeboard.com/article/73847#/prettyPhoto%5Bpp_gal%5D/6/ http://jingyan.eeboard.com ...

  4. STM32———高级定时器的死区时间计算方法

    STM32---高级定时器的死区时间计算方法 1.定时器的时钟分频因子和预分频系数的区别: 1.1 时钟分频因子(Clock division),决定定时器的工作时钟频率. tDTS=fDTS ; t ...

  5. STM32的一个通用定时器理论上可以当做N个来用

    这个想法还是来自于PLC,学过PLC的都知道,在PLC中定时器是用很多的,西门子S7-1200中定时器是这样的 想用更多的定时器可以这样 而且这么多定时器同时或者不同时工作都不会相互影响,原因就是相当 ...

  6. STM32高级定时器TIM1中断的细节配置

    在学习stm32的过程中,了解到定时器是非常核心且实用的一个模块,而定时器的中断更是应用的十分广泛,在学习了中断的一些知识后对普通定时器的中断进行了编写,发现都可以成功.将其移植到高级定时器当中,然而 ...

  7. 【STM32】HAL库 STM32CubeMX教程六----定时器中断

    前言: 今天我们来学习定时器,32的定时器有着非常丰富的功能, 输入捕获/输出比较,PWM,中断等等.是我们学习STM32最频繁使用到的外设之一,所以一定要掌握好,这节我们讲解定时器中断,本系列教程将 ...

  8. stm32专题二十五:基本定时器原理

    STM32F103系列的定时器: 定时器功能:定时.输入比较.输出捕获.互补输出: 定时器分类:基本定时器.通用定时器.高级定时器: 定时器资源:高级定时器(2个)TIM1 和 TIM8:通用定时器( ...

  9. STM32通定时器时间设置步骤和计算公式方法寄存器值

    STM32菜鸟成长记录---普通定时器应用 yx_l128125 2012-08-17 23:14:52  59040  收藏 8 分类专栏: 嵌入式 ARM 文章标签: timer function ...

最新文章

  1. 从源码分析DEARGUI之画图和删图
  2. python和c哪个好学-C/C++和Python哪个更有前景?
  3. ChartType属性
  4. pps服务器未响应_服务响应时间与分布
  5. 再见了,收费的Navicat
  6. Boost:boost::bimaps::list_of的测试程序
  7. 使用生成器创建新的迭代模式
  8. ie浏览器剪贴板操作警告弹窗关闭方法
  9. 使用CSE轻松实现接口访问控制
  10. beego2---入门
  11. linux驱动编写(入门)
  12. 实验五:编写、调试具有多个段的程序
  13. MATLAB 图像处理基础(2)
  14. vuxui 安装使用,解决npm项目文件严重问题提示
  15. py之基于分块运动补偿的视频压缩
  16. 解决IAR printf函数输出中文字符乱码问题
  17. 华为/荣耀 笔记本 HiboardDataReport.exe应用程序错误
  18. 只有10分,5分,2分,1分的硬币;顾客付款x分,商品价格y分。如何找零所使用的硬币最少(递归实现)
  19. 虫师乙醇自动化测试培训第三期
  20. 《人体解剖学(基础医学)》

热门文章

  1. 算法提高 质因数2(java)
  2. 中移4G模块-ML302-OpenCpu开发-(固件编译和烧录)
  3. html5 retina 1像素,走向视网膜(Retina)的Web时代
  4. pip安装gluonts
  5. eureka 集群失败的原因_对于注册中心,ZooKeeper、Eureka哪个更合适?
  6. 列表的pop()和路径拼接问题
  7. MySQL把多条数据给汇总成一条数据
  8. webform快速创建表单内容文件--oracle 数据库
  9. Android学习笔记进阶20之得到图片的缩略图
  10. CentOS7 安装 scala 2.11.1