/*
*********************************************************************************************************
*
*    模块名称 : timer2驱动模块
*    文件名称 : bsp_timer2.c
*    版    本 : V1.0
*    说    明 : timer2时钟定时器
*
*    修改记录 :
*        版本号  日期        作者     说明
*
*********************************************************************************************************
*/

#include "bsp.h"

#define SystemCoreClock  72000000

/*
*********************************************************************************************************
*    函 数 名: bsp_InitTimer2
*    功能说明: 配置beep相关的GPIO,  该函数被 bsp_Init() 调用。
*    形    参:  无
*    返 回 值: 无
*********************************************************************************************************
*/
void bsp_InitTimer2(void)
{
        
        TIM_TimeBaseInitTypeDef   TIM_TimeBaseStructure;
  
        uint32_t usPeriod;
    uint16_t usPrescaler;
    uint32_t uiTIMxCLK;
        
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);    
  
        TIM_DeInit(TIM2);

/* 打开GPIO时钟 */
        
        uiTIMxCLK = SystemCoreClock;
    usPrescaler = uiTIMxCLK / 10000 ;    /* 分频到周期 100us */
        //usPrescaler = uiTIMxCLK / 10000 ;    /* 分频到周期 100us */
        
        usPeriod = 100;      //设置计数溢出大小,每计1000个数就产生一个更新事件  100us*100=10ms 
                          
        
        TIM_TimeBaseStructure.TIM_Period = usPeriod-1;//ARR的值  10ms  设置自动装载寄存器  
        TIM_TimeBaseStructure.TIM_Prescaler = usPrescaler-1; //100us 分频计数 
        
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;采样分频
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数模式
        TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);
        
       // 每次进入中断服务程序间隔时间为  ((1+TIM_Prescaler )/72M)*(1+TIM_Period )=((1+7199)/72M)*(1+9999)=1秒*/

TIM_ClearFlag(TIM2, TIM_FLAG_Update);       //清除溢出中断标志
        TIM_ARRPreloadConfig(TIM2, DISABLE);/*预装载寄存器的内容被立即传送到影子寄存器 */

TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
        TIM_Cmd(TIM2,ENABLE);//开启时钟
        
      
}

//设置所有的中断允许

void NVIC_Configuration(void)
{
    
  NVIC_InitTypeDef NVIC_InitStructure;

/* Timer2中断*/
    NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

}

//初始调用

void bsp_Init(void)
{

RCC_Configuration();

//初始化中断
    NVIC_Configuration();

bsp_InitTimer2();

}

stm32 设置10ms定时器相关推荐

  1. STM32:配置定时器为PWM输出模式以及编码器接口模式

    一:STM32的高级定时器TIM8配置为PWM输出模式 最近在工程项目中,需要用stm32的定时器 (以高级定时器TIM8为例 ) 产生两路PWM输出,作为电机的pwm输入,方法如下: /****** ...

  2. c语言定时器定时1ms程序,STM32 Cubemx 配置定时器定时1mS

    最近才发现原来我把定时器里的配置参数代表的意义给搞混了,这里记录一下,防止以后自己忘记. 以建立一个定时1mS定时器为例: 1.先打开定时器 2.配置好时钟 3.配置定时器设置 重点来了,以前在这里我 ...

  3. STM32 TIM高级定时器死区时间的计算

    STM32 TIM高级定时器的互补PWM支持插入死区时间,本文将介绍如何计算以及配置正确的死区时间. 文章目录 什么是死区时间? 数据手册的参数 如何计算合理的死区时间? STM32中配置死区时间 什 ...

  4. STM32 多个定时器 多路PWM配置

    实验过程中的笔记   在持续更新中  只是一个简化版本 利用定时器1 2 3 4 配置的PWM输出 高级定时器的 PWM 输出,与普通定时器稍有区别,必须通过函数 TIM_CtrlPWMOutputs ...

  5. STM32用一个定时器输出多路不同频率及占空比的PWM(输出比较模式)

    我们使用STM32输出PWM时会使用定时器的PWM输出模式来进行生成,但是这样子生成PWM是有局限的,它只能生成四路频率相同的PWM,当你设定了TIMx_PSC(预分频寄存器)和TIMx_ARR(自动 ...

  6. 【STM32】通用定时器的PWM输出(实例:PWM输出)

    STM32F1xx官方资料: <STM32中文参考手册V10>-第14章  通用定时器 通用定时器PWM概述 STM32定时器输出通道引脚 这里以TIM3为例来讲解.STM32的通用定时器 ...

  7. 深入浅出地理解STM32中的定时器工作原理

    深入浅出地理解STM32中的定时器工作原理 一.如何实现延时 1 纯硬件电路 2 纯软件编程 3 可编程定时/计数器 二.可编程定时/计数器有哪些功能? 三.STM32F103 的定时器有哪些 1 基 ...

  8. STM32—SysTick系统定时器

    SysTick是STM32中的系统定时器,利用SysTick可以实现精确的延时. SysTick-系统定时器 属于 CM3 内核中的一个外设,内嵌在 NVIC 中.系统定时器是一个 24bit 的向下 ...

  9. STM32 TIM1高级定时器RCR重复计数器的理解

    STM32 TIM1高级定时器RCR重复计数器的理解 TIMx_RCR重复计数器寄存器,重复计数器只支持高级定时器TIM1和TIM8,下面看标准外设库的TIM结构体的封装: typedef struc ...

最新文章

  1. JAVA_OPTS 参数
  2. 【动态规划】三种基本背包问题
  3. 公司用云桌面还是台式计算机好,相比于性能更强的台式机为什么很多企业更喜欢用云桌面...
  4. php自动滚动到页尾,让DOM元素自动滚到视野内ScrollIntoView
  5. 7-2 通讯录的录入与显示 (10 分)
  6. 深度原理与框架-图像超分辨重构-tensorlayer
  7. 实现有管理功能的ASP留言板
  8. 升级IE11时,失败报错如何解决
  9. cmd命令查看本机网外地址
  10. JS实现实时显示时间
  11. 渗透攻击阶段 PTES
  12. vlan tag是做什么用的?
  13. 缩略图-快速开始(GraphicsMagick )
  14. C#图形窗口的几种边框样式,固定大小,及可调节大小等样式
  15. 从用AI+VR虚拟教室穿越到中国说起,看红头文件下,互联网教育公司的AI招牌
  16. 22考研清华深研院电子与通信,985信号与系统400+高分经验分享
  17. 项目型公司 VS 产品型公司
  18. 微信小程序转二维码方法分享
  19. 如何提取视频中的音频?自用方法介绍
  20. java反射获取字段的顺序6_反射之获取字段

热门文章

  1. 洞察了真正的“智能未来”,百度云ABC如何为主导“第四产业”谋局?
  2. 大数据分析对新零售的作用是什么?
  3. 微信网页ios端不能滚动
  4. 数字化转型中的五大陷阱
  5. ISO20000/ISO27001双重认证给企业带来的收益
  6. 怎么解决win10电脑桌面图标右下角有黑色方块的问题!轻松修复桌面图标显示异常!【解决方案分享】
  7. 基于物联网的自动灌溉系统的设计与实现
  8. 作为Java开发人员,我们需要掌握与应用这几款模型工具!
  9. Hack The Box-Crocodile
  10. 密码学认证密钥交换协议安全性和常见攻击-更新中