刚才看了一下STM32通用定时器的教程,其实和51的定时器使用差不多。只是因为32的时钟更复杂,可操控的寄存器更多,所以写的时候可能更复杂。

使用通用定时器中断的一般步骤:
1、使能定时器时钟

这个需要看时钟树,使能对应的时钟就好了。这里我使用的是TIM3,所以使能APB1的时钟即可。

2、设置定时器的分频系数和重装载值

定时器中断的时间为:Tout = (arr+1)/[Tclk/(psc+1)]

其实这个定时器中断时间还是要具体分析,这里是这样,其他地方或许不是这样,具体还是要参考《STM32参考手册》。

3、使能定时器中断

4、启动定时器

5、定时器中断初始化,设置它的中断优先级,分组之类的

6、编写中断服务函数

下面是对应的代码

//初始化定时器
void TIMER_Init(u16 psc,u16 arr){
RCC->APB1ENR = <<; //使能定时器时钟
TIM3->PSC = psc; //设置预分频系数
TIM3->ARR = arr; //设置重装载值
TIM3->DIER |= <<; //使能定时器中断
TIM3->CR1 |= <<; //启动定时器
MY_NVIC_Init(,,TIM3_IRQn,); //定时器中断初始化
} //中断服务函数
void TIM3_IRQHandler(){
if(TIM3->SR&0x0001)LED0 = ~LED0;
TIM3->SR &= ~(<<); //清除中断标志
}

STM32通用定时器实现LED灯闪烁的更多相关文章

  1. STM32通用定时器(转载)

    STM32的定时器功能很强大,学习起来也很费劲儿. 其实手册讲的还是挺全面的,只是无奈TIMER的功能太复杂,所以显得手册很难懂,我就是通过这样看手册:while(!SUCCESS){看手册-}才搞明 ...

  2. STM32——通用定时器基本定时功能

    STM32——————通用定时器基本定时功能                                                                           1.  ...

  3. Arduino 翻译系列 - LED 灯闪烁

    原文地址 - https://www.arduino.cc/en/Tutorial/Blink 闪烁 这个例子展示了你能拿 Arduino / Genuino 板子来干的最简单的事:使开发板上的 LE ...

  4. STM32通用定时器原理

    /************************************************************************************************ 转载 ...

  5. STM32 通用定时器的几种配置方式

    STM32 通用定时器的几种配置方式 //------------------------------------------------------------------------------ ...

  6. STM32通用定时器配置

    一.STM32通用定时器原理 STM32 系列的CPU,有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生.其它6个 ...

  7. 树莓派开机运行Python脚本 控制LED灯闪烁

    一.新建一个开机运行文件 在 /home/pi/.config 下创建一个文件夹,名称为 autostart,并在该文件夹下创建一个led.desktop文件(文件名以.desktop结尾) 编辑le ...

  8. 1个LED灯闪烁的Arduino控制

    控制任务和要求 让一个LED灯闪烁 接线 程序设计 1 int half_cycle=1000; // define the cycle time of LED blink 2 int LED_pin ...

  9. stm32通用定时器中断问题

    在使用stm32的通用定时器定时中断的时候,发现定时器在完成初始化配置后,定时器UIF位会立刻置位,导致在使能中断后,程序会立刻进入定时器中断. 如果设计代码时不希望定时器配置完成后,立刻进入中断,可 ...

随机推荐

  1. 任务调度 Quartz 学习(二) CronTrigger

    在Quartz中Trigger有 SimpleTrigger与CronTrigger两种: SimpleTrigger:当需要的是一次性的调度(仅是安排单独的任务在指定的时间及时执行),或者你需要在指 ...

  2. UVA 1645 Count

    https://vjudge.net/problem/UVA-1645 题意:有多少个n个节点的有根树,每个深度中所有节点的子节点数相同 dp[i] 节点数为i时的答案 除去根节点还有i-1个点,如果 ...

  3. [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper

    洛谷题目链接:[USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper 题目描述 A little known fact about Bessie and friends is ...

  4. 【poj1830-开关问题】高斯消元求解异或方程组

    第一道高斯消元题目~ 题目:有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为开就变为关 ...

  5. 【NOIP】普及组2011 表达式的值

    [算法]动态规划+后缀表达式 [题解] 先把算式转为后缀表达式后进行DP 令f[s][0]表示使表达式答案为0的方案数 f[s][1]表示使表达式答案为1的方案数 (加法) f[a+b][1]=f[a ...

  6. NGINX: Primary script unknown

    参考: [ StackExchange ] 这里的解决方式应该是你排查了所有原因依然无法解决问题. SELINUX 更改 selinux 配置 chcon -R -t httpd_sys_conten ...

  7. 24、redis中的sentinel的作用?

    redis中的sentinel的作用? Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Re ...

  8. webpack_配置和使用教程

    webpack是一个模块打包的工具,它的作用是把互相依赖的模块处理成静态资源. webpack 可以使用 loader 来预处理文件.这允许你打包除 JavaScript 之外的任何静态资源.你可以使 ...

  9. 一个文档让vim飞起来

    原文地址:http://www.cnblogs.com/songfy/p/5635757.html 引言 今天我们特地来讲讲这个vim的配置. vim这东西, 很多人装逼的时候经常会提到, 不过大部分 ...

  10. Android 开发之避免被第三方使用代理抓包

    现象:charles抓不到包,但wireshark,HttpAnalyzor可以抓到包. 关键代码: URL url = new URL(urlStr); urlConnection = (HttpU ...