stm32中断

EXTI外部中断

NVIC:嵌套中断向量控制器(分配中断优先级管理中断)用于分配管理哪个中断先执行。

EXTI:外部中断(边沿检测及控制)

AFIO:中断引脚选择(GPIOA,GPIOB,GPIOC等,每个只能选择其中一个引脚。)一共16个

整体流程:

AFIO选择中断引脚  ->  EXTI检测中断  ->  NVIC管理中断,选择启动哪个中断。


TIM 定时器

时基单元

  1. 16位计数器(用来计数)每来个上升沿,计数器的值加1,值可以从0-65535
  2. 预分频器(使计数更加灵活)与实际相差1(如果预分频是0,则72/1,如果预分频是1,则72/2。)所以预分频器一般些65535=65536
  3. 自动重装寄存器(设置想要计数多少个时钟申请中断)用于存储计数目标

注:主频一般72MHZ  (72MHz计72个数,那就是1MHz也就是1us的时间)

最大定时时间是59.65s

(解释:预分频和自动重装都设置最大为     2的16次幂X2的16次幂=25536X25536=可记录的最大震荡次数N,N/(每秒震荡次数)72MHz=最大计时59.65s)

整体流程为:基准时钟72Hz先到预分频器进行分频,然后计数器计数自增同时不断的与自动重装寄存器进行比较,如果达到目标值则产生定时中断。

基本定时器   支持向上计数

首先使用内部时钟主频72Hz(来自RCC的TIMxCLK),再到时基单元。

1.首先到预分频器对72预分频(如果是0则是1分频72/1,如果是1则是2分频72/2

2.再到CNT计数器(每来个上升沿计数器的值加1)16位可以从0到65535

3.最后跟自动重装载寄存器比较(写的是计数目标,如果达到目标产生中断

4.产生的中断有(1.更新中断(通往NVIC)2.更新事件(可触发内部其他电路工作))


通用定时器(支持向上计数,向下计数,中央对齐)

不仅可以选择内部时钟,还可以选择外部时钟。

ETR(外部时钟)。

TRGI(也可以提供时钟)触发输入,可作为输入的有(1.ETR引脚   2.其他定时器  3.CH1引脚的边沿  4.CH1引脚   5.CH2引脚  6.内部72Hz时钟最常用

高级定时器

可以对定时周期再次分频。实现每隔几个计数周期才发生一次更新事件和更新中断.


定时中断结构

时钟源选择:

  1. RCC内部时钟。 
  2. ETR引脚提供的 外部时钟模式2  
  3. 触发输入ITRX ETR引脚提供 TIx输入捕获通道 外部时钟模式1  
  4. TIx输入捕获通道  编码器模式  

TIM输出比较和输入捕获

输入捕获:检测电平跳变,执行CNT锁存CCR。

输出比较:比较CNT与CCR的大小关系执行输出动作。

输入捕获

(频率高)测频法:N次数/T规定时间 =频率

(频率低)测周法:1/(fc设定的标准频率*N次数)=N次数 / fc设定的标准频率 =频率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值