OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9817|回复: 1

写了个TIM1通道1的输入捕获程序,发现没有进入中断?

[复制链接]

21

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2011-6-30
在线时间
0 小时
发表于 2011-7-18 15:35:13 | 显示全部楼层 |阅读模式

#include<stm32f10x_lib.h>
#include "delay.h"
#include "sys.h"

void TIM1_IRQHandler(){
 GPIOE->ODR|=0x00000001;
 TIM1->SR&=~(1<<1);//清除捕获/比较1事件中断标志位
}

void Timerx_Init(u16 arr,u16 psc){//输入捕获
 RCC->APB2ENR|=1<<(2+0);
 GPIOA->CRL&=0xFFFFFFF0;
 GPIOA->CRL|=0x00000008;
 GPIOA->ODR|=0x00000001;

 RCC->APB2ENR|=1<<11;//TIM1定时器时钟开启
 TIM1->ARR=arr;
 TIM1->SC=psc;

 TIM1->CCMR1&=0xFFFC;
 TIM1->CCMR1|=0x0001;//CC1通道配置为输入,IC1映射到IT1上
 TIM1->CCMR1&=0xFF0F;
 TIM1->CCMR1|=0x0030;//fsampling=fck_int,N=8
 TIM1->CCER&=~(1<<1);//上升沿有效
 TIM1->CCMR1&=0xFFF3;//无预分频器,上升沿时产生捕获
 TIM1->CCER|=1<<0;//捕获使能
 TIM1->DIER|=1<<1;// 使能中断

 TIM1->CR1|=1<<0;//计数器使能
}

void GPIO_Config(){
 RCC->APB2ENR|=1<<(2+4);
 GPIOE->CRL&=0xFFFFFFF0;
 GPIOE->CRL|=0x00000003;
 GPIOE->ODR&=0x00000000;
}

int main(){
 Stm32_Clock_Init(9);
 delay_init(72);
 GPIO_Config();
 Timerx_Init(65535,65535);
 while(1);
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2011-6-30
在线时间
0 小时
 楼主| 发表于 2011-7-18 16:26:53 | 显示全部楼层
回复【楼主位】Crystal_oscillat:
---------------------------------
改了一遍,发现还是不行
把PA8口引脚该为浮空输入模式和加了中断配置函数,但是不知道哪里还有错,没有出来
#include<stm32f10x_lib.h>
#include "delay.h"
#include "sys.h"

void TIM1_CC_IRQHandler(){
GPIOE->ODR|=0x00000001;
TIM1->SR&=~(1<<1);//清除捕获/比较1事件中断标志位
}

void Timerx_Init(u16 arr,u16 psc){//输入捕获
RCC->APB2ENR|=1<<(2+0);
GPIOA->CRL&=0xFFFFFFF0;
GPIOA->CRL|=0x00000004;
GPIOA->ODR|=0x00000001;

RCC->APB2ENR|=1<<11;//TIM1定时器时钟开启
TIM1->ARR=arr;
TIM1->SC=psc;

TIM1->CCMR1&=0xFFFC;
TIM1->CCMR1|=0x0001;//CC1通道配置为输入,IC1映射到IT1上
TIM1->CCMR1&=0xFF0F;
TIM1->CCMR1|=0x0030;//fsampling=fck_int,N=8
TIM1->CCER&=~(1<<1);//上升沿有效
TIM1->CCMR1&=0xFFF3;//无预分频器,上升沿时产生捕获
TIM1->CCER|=1<<0;//捕获使能
TIM1->DIER|=1<<1;// 使能中断

TIM1->CR1|=1<<0;//计数器使能
PriorityGroup_Config(2);
Priority_Config(1,3,TIM1_CC_IRQChannel,2);
}

void GPIO_Config(){
RCC->APB2ENR|=1<<(2+4);
GPIOE->CRL&=0xFFFFFFF0;
GPIOE->CRL|=0x00000003;
GPIOE->ODR&=0x00000000;
}

int main(){
Stm32_Clock_Init(9);
delay_init(72);
GPIO_Config();
Timerx_Init(65535,65535);
while(1);
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 17:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表