OpenEdv-开源电子网

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

如何用寄存器控制定时器 开始、停止、复位等操作。

[复制链接]

31

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2013-9-23
在线时间
44 小时
发表于 2023-11-30 15:22:22 | 显示全部楼层 |阅读模式
1金钱
我有一个需求,STM32H750  定时器3   初始化后 , 用软件实现定时器的 开始、停止、复位、启动定时器。定时器中断响应后,定时器停止状态,待软件再次启动定时器工作。反复过程。

void TIM3_Int_Init(u16 arr,u16 psc)
{
        RCC->APB1LENR|=1<<1;                                    
        while((RCC->APB1LENR&(1<<1))==0);         
        TIM3->ARR=arr;                                          
        TIM3->PSC=psc;                                          
        TIM3->SMCR=0;                                       
        TIM3->DIER|=1<<0;                                            
        TIM3->CR1&=~(3<<5);                              
        TIM3->CR1&=~(1<<4);                                    
        TIM3->CR1|=0x01;                                    // 使能定时器
        MY_NVIC_Init(1,3,TIM3_IRQn,2);                        
}

这个似乎初始化就启动定时器了,我需要初始化停止
   请教各位。


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

使用道具 举报

10

主题

3281

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8204
金钱
8204
注册时间
2020-5-11
在线时间
3697 小时
发表于 2023-11-30 16:13:17 | 显示全部楼层
把“使能定时器”那句屏蔽掉就是。
C语言位运算了解一下,知道该怎么让指定的位置1或清0。
STM32中文手册拿出来翻一下,看定时器相关的寄存器。
如果你有标准库,可以看一下“stm32f10x_tim.c”和“stm32f10x_tim.h”,
看一下TIM_TimeBaseInit,TIM_Cmd,TIM_SetCounter。
建议百度一下STM32定时器例程。
专治疑难杂症
回复

使用道具 举报

11

主题

2103

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4588
金钱
4588
注册时间
2015-1-10
在线时间
574 小时
发表于 2023-12-1 15:16:17 | 显示全部楼层
使能位置0
回复

使用道具 举报

31

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2013-9-23
在线时间
44 小时
 楼主| 发表于 2023-12-1 19:16:23 | 显示全部楼层
谢谢各位大师   解决了。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 02:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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