OpenEdv-开源电子网

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

STM32定时器的两个问题,求助原子哥

[复制链接]

9

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2015-4-14
在线时间
2 小时
发表于 2015-4-18 20:19:50 | 显示全部楼层 |阅读模式
5金钱
原子哥我最近在用调试程序的时候有两个问题麻烦解决一下
1定时器一打开不管有没有溢出都会直接进入更新中断,有没有什么办法解决一下,论坛里有几篇这个帖子我试了下不管用,原子哥有没有什么好办法
2怎样可以让32的定时器像51那样随时开随时关,32这个关了怎么就开不了了。。
PS我用的是
#define tim4open TIM4->CR1|=0x01
#define tim4close TIM4->CR1&=0xFFFe
这两个语句

谢谢原子哥

最佳答案

查看完整内容[请看2#楼]

1,这个bug我也没解决办法。 2,请参考我们的PS2实验,里面就有某个中断 的开关方法,很简单。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-4-18 20:19:51 | 显示全部楼层
1,这个bug我也没解决办法。
2,请参考我们的PS2实验,里面就有某个中断 的开关方法,很简单。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5782
金钱
5782
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-4-18 20:50:33 | 显示全部楼层
STM32 中断好像就是有这个问题,开启定时器就会进入一次中断, 试一试开启定时器之前清除标志位
定时器可以随时开关,道理你这个可以用的,要不直接用 TIM4->CR1|=0x01和 TIM4->CR1&=0xFFFe试试
回复

使用道具 举报

9

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2015-4-14
在线时间
2 小时
 楼主| 发表于 2015-4-18 21:04:05 | 显示全部楼层
回复【2楼】lycreturn:
---------------------------------
直接用这个语句也不行啊,只有第一次可以开,关了以后就开不了了,是不是还要配置什么寄存器?我的初始化是这个
void TIM4INIT (u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<2; //TIM3时钟使能    
  TIM4->ARR=arr;   //设定计数器自动重装值//刚好1ms    
TIM4->SC=psc;   //预分频器7200,得到10Khz的计数时钟   
TIM4->DIER|=1<<0;   //允许更新中断
TIM4->RCR=0;    
// TIM4->CR1|=0x01;    //使能定时器3
   MY_NVIC_Init(1,3,TIM4_IRQn,2); //抢占1,子优先级3,组2  
//    tim4open;TIM4->EGR|=1<<0;

//    TIM4->SR&=~(1<<0);
//    TIM4->DIER|=1<<0;



反正就是没法开关,还有清除标志位也不行
回复

使用道具 举报

9

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2015-4-14
在线时间
2 小时
 楼主| 发表于 2015-4-19 08:46:12 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子哥这是我参照写的开关程序
void TIM4EN(u8 EN)
{ TIM4->SR&=~(1<<0);//清除中断标志位      
if(EN==1)
    TIM4->DIER|=1<<0;
else TIM4->DIER&=~(1<<0);}
还是只能开一次,关一次,然后就开不了了,请问该怎么办,急用
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-4-19 10:06:20 | 显示全部楼层
回复【5楼】入门新手:
---------------------------------
代码看起来没问题啊。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

9

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2015-4-14
在线时间
2 小时
 楼主| 发表于 2015-4-19 12:12:47 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
调试好了,程序问题,谢啦

还有我发现控制定时器开关有两个办法,一个是控制中断,一个是控制使能,而前者可以很好的解决定时器第一次进入便中断的问题,原子哥可以试试
回复

使用道具 举报

9

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2015-4-14
在线时间
2 小时
 楼主| 发表于 2015-4-19 17:43:13 | 显示全部楼层
????¤????5?????‘ ????????????:
---------------------------------
è°?è????????????¨????é—?é?????è°????

è????‰??‘??‘??°??§???????—???¨????…???‰??¤???????????????????????§???????–???????????????§??????è?????è???‰?è?…???????????????è§????????—???¨?????????è???…????????–????é—?é????????????“???????è??è??
回复

使用道具 举报

29

主题

311

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1530
金钱
1530
注册时间
2012-9-4
在线时间
262 小时
发表于 2015-4-20 09:23:20 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子哥,F407也存在“定时器中断开启都会直接进入更新中断”这个问题吗????
STM32---STM32---STM32---STM32---STM32---STM32---STM32---STM32---STM32
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 12:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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