STM32F103定时器中断、输入捕获(寄存器版本)(绝对干货)

本文详细介绍了如何在STM32F103RCT6上使用寄存器版本设置定时器中断和输入捕获功能。内容包括软件和硬件环境配置,以及具体的初始化步骤和中断函数实现,是针对STM32初学者的实用教程。
摘要由CSDN通过智能技术生成

使用环境(蓝色粗体字为特别注意内容)
1、软件环境:Win7 32 bit,Keil MDK V5.15
2、硬件环境:ALIENTEK MiniSTM32开发板、STM32F103RCT6

STM32输入捕获调试了几个小时,找了很多的参考代码,发现总是存在各种各样的问题,在此记录一下STM32F103RCT6的定时器输入捕获以及定时器中断,鉴于寄存器版本的程序执行效率很高,故此处采用寄存器版本实现。

Step1,初始化

//初始化TIM2定时器及中断
//每次进入中断服务程序间隔时间为
//((1+arr )/72M)*(1+psc )=((1+1999)/72M)*(1+35999)=1秒
//TIM2_Config(1999,35999); // 1s
void TIM2_Config(u16 arr, u16 psc)
{
     RCC->APB1ENR|=1<<0;       //TIM2 时钟使能 
     RCC->APB2ENR|=1<<2;        //使能PORTA时钟  
      
     GPIOA->CRL&=0XFFFFFFF0;    //PA0 清除之前设置  
     GPIOA->CRL|=0X00000008;    //PA0 输入   
     GPIOA->ODR|=0<<0;        //PA0 下拉
       
     TIM2->ARR=arr;          //设定计数器自动重装值   
     TIM2->PSC=psc;          //预分频器 
  
     TIM2->CCMR1|=1<<0;        //
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值