stm32 设置10ms定时器
/*
*********************************************************************************************************
*
* 模块名称 : 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定时器相关推荐
- STM32:配置定时器为PWM输出模式以及编码器接口模式
一:STM32的高级定时器TIM8配置为PWM输出模式 最近在工程项目中,需要用stm32的定时器 (以高级定时器TIM8为例 ) 产生两路PWM输出,作为电机的pwm输入,方法如下: /****** ...
- c语言定时器定时1ms程序,STM32 Cubemx 配置定时器定时1mS
最近才发现原来我把定时器里的配置参数代表的意义给搞混了,这里记录一下,防止以后自己忘记. 以建立一个定时1mS定时器为例: 1.先打开定时器 2.配置好时钟 3.配置定时器设置 重点来了,以前在这里我 ...
- STM32 TIM高级定时器死区时间的计算
STM32 TIM高级定时器的互补PWM支持插入死区时间,本文将介绍如何计算以及配置正确的死区时间. 文章目录 什么是死区时间? 数据手册的参数 如何计算合理的死区时间? STM32中配置死区时间 什 ...
- STM32 多个定时器 多路PWM配置
实验过程中的笔记 在持续更新中 只是一个简化版本 利用定时器1 2 3 4 配置的PWM输出 高级定时器的 PWM 输出,与普通定时器稍有区别,必须通过函数 TIM_CtrlPWMOutputs ...
- STM32用一个定时器输出多路不同频率及占空比的PWM(输出比较模式)
我们使用STM32输出PWM时会使用定时器的PWM输出模式来进行生成,但是这样子生成PWM是有局限的,它只能生成四路频率相同的PWM,当你设定了TIMx_PSC(预分频寄存器)和TIMx_ARR(自动 ...
- 【STM32】通用定时器的PWM输出(实例:PWM输出)
STM32F1xx官方资料: <STM32中文参考手册V10>-第14章 通用定时器 通用定时器PWM概述 STM32定时器输出通道引脚 这里以TIM3为例来讲解.STM32的通用定时器 ...
- 深入浅出地理解STM32中的定时器工作原理
深入浅出地理解STM32中的定时器工作原理 一.如何实现延时 1 纯硬件电路 2 纯软件编程 3 可编程定时/计数器 二.可编程定时/计数器有哪些功能? 三.STM32F103 的定时器有哪些 1 基 ...
- STM32—SysTick系统定时器
SysTick是STM32中的系统定时器,利用SysTick可以实现精确的延时. SysTick-系统定时器 属于 CM3 内核中的一个外设,内嵌在 NVIC 中.系统定时器是一个 24bit 的向下 ...
- STM32 TIM1高级定时器RCR重复计数器的理解
STM32 TIM1高级定时器RCR重复计数器的理解 TIMx_RCR重复计数器寄存器,重复计数器只支持高级定时器TIM1和TIM8,下面看标准外设库的TIM结构体的封装: typedef struc ...
最新文章
- JAVA_OPTS 参数
- 【动态规划】三种基本背包问题
- 公司用云桌面还是台式计算机好,相比于性能更强的台式机为什么很多企业更喜欢用云桌面...
- php自动滚动到页尾,让DOM元素自动滚到视野内ScrollIntoView
- 7-2 通讯录的录入与显示 (10 分)
- 深度原理与框架-图像超分辨重构-tensorlayer
- 实现有管理功能的ASP留言板
- 升级IE11时,失败报错如何解决
- cmd命令查看本机网外地址
- JS实现实时显示时间
- 渗透攻击阶段 PTES
- vlan tag是做什么用的?
- 缩略图-快速开始(GraphicsMagick )
- C#图形窗口的几种边框样式,固定大小,及可调节大小等样式
- 从用AI+VR虚拟教室穿越到中国说起,看红头文件下,互联网教育公司的AI招牌
- 22考研清华深研院电子与通信,985信号与系统400+高分经验分享
- 项目型公司 VS 产品型公司
- 微信小程序转二维码方法分享
- 如何提取视频中的音频?自用方法介绍
- java反射获取字段的顺序6_反射之获取字段