OpenEdv-开源电子网

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

关于TIM1作为脉冲计数,求助

[复制链接]

9

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2014-7-18
在线时间
0 小时
发表于 2014-9-8 21:21:49 | 显示全部楼层 |阅读模式
5金钱

想通过定时器1   用来测量脉冲的个数 发现程序进不去中断。

[mw_shl_code=c,true]void TIM1_Channel11_Init(u16 arr,u16 psc) { RCC->APB2ENR |= 1<<2; //打开GPIOA口时钟 GPIOA->CRH&= 0XFFFFFFF0; GPIOA->CRH|= 0X0000000F; //GPIOA^8设置为上/下拉输入 GPIOA->ODR|= 1<<8; //输出高电平 RCC->APB2ENR |= 1<<11; //打开TIM1口时钟 TIM1->ARR = arr; TIM1->SC = psc; // TIM1->SMCR=1<<2; // TIM1->SMCR=1<<1; // TIM1->SMCR=1<<0; //SMS=111,配置定时器为外部计数 // TIM1->SMCR=1<<6; // TIM1->SMCR=0<<5; // TIM1->SMCR=1<<4;//TS=101,选择TI1作为输入源 TIM1->SMCR&= 0XFF00; TIM1->SMCR|= 0X00F4; /*TIM2->SMCR |= 1<<7; //打开主从模式 TIM2->SMCR |= 5<<4; //滤波后的定时器输入 TI1FP1 TIM2->SMCR |= 4<<0; //使用从模式的复位模式 */ TIM1->CCMR1 |= 1<<0; //CC1映射在TI1上 TIM1->CCMR1 |= 0<<2; //无分频 TIM1->CCMR1 |= 3<<4; //无数字滤波 TIM1->CCER &= ~(1<<1); //CC1捕获极性为上跳沿 TIM1->CCER |= 1<<0; //允许CC1捕获值放入CCR1中 TIM1->DIER|= 1<<1; //允许CC1捕获产生中断 TIM1->CR1 |= 1<<0; //打开定时器2 MY_NVIC_Init(2,2,TIM1_UP_IRQChannel,1);//设置中断 } void TIM1_IRQHandler(void) { TIM1->SR &= ~(1<<1); maichong++; LED1=!LED1; }[/mw_shl_code]

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

使用道具 举报

9

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2014-7-18
在线时间
0 小时
 楼主| 发表于 2014-9-8 23:53:58 | 显示全部楼层

换了另一种方法 将TIM2 CH1 重映射 到PA15   发现还是不行 已经关闭 JTAG模式
直接上程序吧

[mw_shl_code=c,true]void TIMx_ICx_Init(u16 arr,u16 psc) { RCC->APB2ENR|=1<<0; //使能AFIO时钟 RCC->APB2ENR |= 1<<2; //打开GPIOA口时钟 AFIO->MAPR|=4<<24; // AFIO->MAPR&=0XFFFFFFFF; AFIO->MAPR2|= 1<<8; AFIO->MAPR2|= 1<<9; GPIOA->CRH&= 0X0FFFFFFF; GPIOA->CRH|= 0XB0000000; //GPIOA^0设置为上/下拉输入 GPIOA->ODR&= 0<<15; //输出高电平 // GPIOA->ODR|=0<<0; //PA0 下拉 RCC->APB1ENR|= 1<<0; //打开TIM2时钟 TIM2->ARR = arr; TIM2->SC = psc; TIM2->SMCR&= 0XFF00; TIM2->SMCR|= 0X00F4; /*TIM2->SMCR |= 1<<7; //打开主从模式 TIM2->SMCR |= 5<<4; //滤波后的定时器输入 TI1FP1 TIM2->SMCR |= 4<<0; //使用从模式的复位模式 */ TIM2->CCMR1 |= 1<<0; //CC1映射在TI1上 TIM2->CCMR1 |= 0<<2; //无分频 TIM2->CCMR1 |= 3<<4; //无数字滤波 TIM2->CCER &= ~(1<<1); //CC1捕获极性为上跳沿 TIM2->CCER |= 1<<0; //允许CC1捕获值放入CCR1中 TIM2->DIER|= 1<<1; //允许CC1捕获产生中断 TIM2->CR1 |= 1<<0; //打开定时器2 MY_NVIC_Init(2,2,TIM2_IRQChannel,2);//设置中断 } [/mw_shl_code]

Stm32 F0/F103
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-9-9 00:13:25 | 显示全部楼层
回复【2楼】psrazil:
---------------------------------
试试不重映射。
外部脉冲计数我发过例子,你可以参考下。
搜索:脉冲计数
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

9

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2014-7-18
在线时间
0 小时
 楼主| 发表于 2014-9-9 02:01:01 | 显示全部楼层
回复【3楼】正点原子:
--------------------------------你发的我有看过,但是貌似没有通道2 3 4的,后来自己对照手册 尝试用外部计数器模式1,还是不太行,想请教一下通用寄存器 t1输入的 ch1  ch2 ch3 异或的意思?
Stm32 F0/F103
回复

使用道具 举报

9

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2014-7-18
在线时间
0 小时
 楼主| 发表于 2014-9-9 02:19:06 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
看了你之前发的 tim5 ch2设置的文章基本思路有了,想问一下如果是ch3的话 是要将t2fp2 挂到t3上还是通过 t1 过ch3的数据
Stm32 F0/F103
回复

使用道具 举报

9

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2014-7-18
在线时间
0 小时
 楼主| 发表于 2014-9-9 07:51:08 | 显示全部楼层



如图 外部时钟模式1  只有 EDR T1FP1  T2FP2   想问通道3要怎样解决



Stm32 F0/F103
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-9-9 12:47:17 | 显示全部楼层
回复【6楼】psrazil:
---------------------------------
没法用吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-1 15:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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