OpenEdv-开源电子网

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

各位大神,我想问一下TIM3设置向上计数产生中断有哪些步骤,我的程序还缺什么

[复制链接]

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
发表于 2016-9-14 15:50:32 | 显示全部楼层 |阅读模式
5金钱

          //1:时钟选择
         TIM3->SMCR &=  0XFFF8;    //选择内部时钟,则由内部时钟来控制分频器
        //2:分频
     TIM3->PSC   =  0X1F3F;    //分频到9KHz
        //3:计数器装载
         TIM3->ARR   =  0X2328;    //装载9000 也就是1S
        //4:设置向上计数
         TIM3->CR1  &=  ~(1<<4);
        //5:设置预装在寄存器随时传递给影子寄存器
         TIM3->CR1  &=  0XFF7F;
        //6:设置边沿对齐模式
         TIM2->CR1  &=  ~(0X0003<<5);
        //7:设置计数器的值
         TIM3->CNT   = 0X0000;
        //8:选择中断源
         TIM3->CR1  &= ~(1<<2);
        //9:允许中断请求
         TIM3->DIER &= 0XFFFE;
        //10:使能中断
         TIM3->CR1  &= 0XFFFD;
        //11:使能计数时钟
         TIM3->CR1 |=0X0001;

最佳答案

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

没开RCC->APB1ENR TIM3的时钟,另外第6条是TIM2还是TIM3? 我用的TIM1产生3路PWM,今天试验成功了,给你做个参考,我用的时钟是HSI8MHz。 RCC->APB2ENR=0x0A1C; //开启TIM1和ADC1、GPIOA、B、C时钟 RCC->APB2RSTR=0x0A1C; //复位 RCC->APB2RSTR=0; //复位结束 GPIOA->CRL=0x22222222; //设置PA0-7为推挽输出,速度2MHz GPIOA->CRH=0x444AAAAA; //设置PA8-12为复用推挽输出,速度2MHz,其余输入 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

305

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2876
金钱
2876
注册时间
2016-7-17
在线时间
404 小时
发表于 2016-9-14 15:50:33 | 显示全部楼层
没开RCC->APB1ENR TIM3的时钟,另外第6条是TIM2还是TIM3?
我用的TIM1产生3路PWM,今天试验成功了,给你做个参考,我用的时钟是HSI8MHz。

        RCC->APB2ENR=0x0A1C;                                        //开启TIM1和ADC1、GPIOA、B、C时钟
        RCC->APB2RSTR=0x0A1C;                                        //复位
        RCC->APB2RSTR=0;                                                //复位结束

        GPIOA->CRL=0x22222222;                                        //设置PA0-7为推挽输出,速度2MHz
        GPIOA->CRH=0x444AAAAA;                                        //设置PA8-12为复用推挽输出,速度2MHz,其余输入

        TIM1->CCMR1=0x6060;                                                //设置TIM1_CH1、CH2为PWM1模式
        TIM1->CCMR2=0x0060;                                                //设置TIM1_CH3为PWM1模式
        TIM1->CCER=0x0999;                                                //TIM1_OC1、2、3允许,高电平,OCxN低电平,禁止
        TIM1->ARR=499;                                                        //设置计数周期,频率16KHz
        TIM1->CCR1=49;                                                        //设置占空比=10%
        TIM1->CCR2=49;                                                        //设置占空比=10%
        TIM1->CCR3=49;                                                        //设置占空比=10%
        TIM1->BDTR=0x8000;                                                //TIM1主输出使能
        TIM1->CR1|=1<<0;                                                //启动TIM1
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2016-9-14 15:51:10 | 显示全部楼层
第9步是不是有问题?
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2016-9-14 23:13:26 | 显示全部楼层
f1174562 发表于 2016-9-14 23:11
没开RCC->APB1ENR TIM3的时钟,另外第6条是TIM2还是TIM3?
我用的TIM1产生3路PWM,今天试验成功了,给你做 ...

谢谢分享!!!
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2016-9-15 23:38:26 | 显示全部楼层
f1174562 发表于 2016-9-14 23:11
没开RCC->APB1ENR TIM3的时钟,另外第6条是TIM2还是TIM3?
我用的TIM1产生3路PWM,今天试验成功了,给你做 ...

调好了,我看库里面好像还有分频因子,分频系数,我只设置了分频系数,这个分频因子是干什么用的?
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2016-9-19 13:36:57 | 显示全部楼层
f1174562 发表于 2016-9-14 15:50
没开RCC->APB1ENR TIM3的时钟,另外第6条是TIM2还是TIM3?
我用的TIM1产生3路PWM,今天试验成功了,给你做 ...

能否问一下,这个产生PWM的配置,计数器的时钟是什么模式?
回复

使用道具 举报

6

主题

305

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2876
金钱
2876
注册时间
2016-7-17
在线时间
404 小时
发表于 2016-9-19 21:44:07 | 显示全部楼层
用内部时钟,我没太在意是什么模式。
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2016-9-19 22:07:15 | 显示全部楼层
f1174562 发表于 2016-9-19 21:44
用内部时钟,我没太在意是什么模式。

基本都是内部时钟吗?
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2016-9-19 22:08:19 | 显示全部楼层
f1174562 发表于 2016-9-19 21:44
用内部时钟,我没太在意是什么模式。

那个使能定时器时钟是什么时钟?
回复

使用道具 举报

6

主题

305

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2876
金钱
2876
注册时间
2016-7-17
在线时间
404 小时
发表于 2016-9-20 19:35:31 | 显示全部楼层
在RCC的APBxENR中,用到了那个外设就要开那个外设的时钟,比如用了TIM1的PWM输出,首先要开TIM1时钟,另外PWM通过GPIOA和GPIOB输出,还要把GPIOA、B的时钟打开。
我看你是用库函数的,没太必要知道这些寄存器具体内容。
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
 楼主| 发表于 2016-9-20 20:53:54 | 显示全部楼层
f1174562 发表于 2016-9-20 19:35
在RCC的APBxENR中,用到了那个外设就要开那个外设的时钟,比如用了TIM1的PWM输出,首先要开TIM1时钟,另外P ...

好吧,谢谢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-29 07:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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