OpenEdv-开源电子网

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

STM32F103C8T6 TIM2定时器问题

[复制链接]

20

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
140
金钱
140
注册时间
2017-8-7
在线时间
26 小时
发表于 2020-12-4 09:53:45 | 显示全部楼层 |阅读模式
原子哥,请问一下,我把你的定时器例子 里面的 “TIM_TimeBaseStructure.TIM_Period”设置为1, ”TIM_TimeBaseStructure.TIM_Prescaler设置为0” ,为啥程序就不工作了,所有的IO都没有输出了; 但是只把TIM_TimeBaseStructure.TIM_Period改为1, TIM_TimeBaseStructure.TIM_Prescaler 改为35或者71,就可以正常工作输出。  请问是为啥了?谢谢!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2020-12-4 10:11:07 | 显示全部楼层
你是不是把分频啥的都关了,然后周期ARR又弄的太小,整个程序就死中断里了?
回复 支持 反对

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14433
金钱
14433
注册时间
2018-8-3
在线时间
1157 小时
发表于 2020-12-4 11:00:19 | 显示全部楼层
贴代码
回复 支持 反对

使用道具 举报

20

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
140
金钱
140
注册时间
2017-8-7
在线时间
26 小时
 楼主| 发表于 2020-12-4 11:07:22 | 显示全部楼层

TIM3_Init(1,0);                //10Khz的计数频率,计数5K次为500ms     
void TIM3_Init(u16 arr,u16 psc)
{  
    TIM3_Handler.Instance=TIM3;                          //通用定时器3
    TIM3_Handler.Init.Prescaler=0;                     //分频
    TIM3_Handler.Init.CounterMode=TIM_COUNTERMODE_UP;    //向上计数器
    TIM3_Handler.Init.Period=1;                        //自动装载值
    TIM3_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;//时钟分频因子
    HAL_TIM_Base_Init(&TIM3_Handler);
   
    HAL_TIM_Base_Start_IT(&TIM3_Handler); //使能定时器3和定时器3更新中断:TIM_IT_UPDATE   
}

回复 支持 反对

使用道具 举报

20

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
140
金钱
140
注册时间
2017-8-7
在线时间
26 小时
 楼主| 发表于 2020-12-4 11:09:49 | 显示全部楼层
聚东风 发表于 2020-12-4 10:11
你是不是把分频啥的都关了,然后周期ARR又弄的太小,整个程序就死中断里了?

我把分频调成0,ARR调成1,因为我在中断里面设置了一个 翻转信号, 作为时钟给Driver IC,我想这个时钟频率很快,所有把这两个参数设置了最小。代码在楼下,帮忙看下,谢谢
回复 支持 反对

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14433
金钱
14433
注册时间
2018-8-3
在线时间
1157 小时
发表于 2020-12-4 12:34:29 | 显示全部楼层
1648183280 发表于 2020-12-4 11:07
TIM3_Init(1,0);                //10Khz的计数频率,计数5K次为500ms     
void TIM3_Init(u16 arr,u16 psc)
{  

arr设置1?  那不是一直 在中断里边了 肯定有问题的  你arr改大点 500去试下
啊哈~加油!!
回复 支持 反对

使用道具 举报

20

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
140
金钱
140
注册时间
2017-8-7
在线时间
26 小时
 楼主| 发表于 2020-12-4 13:38:28 | 显示全部楼层
翼行园子 发表于 2020-12-4 12:34
arr设置1?  那不是一直 在中断里边了 肯定有问题的  你arr改大点 500去试下

那我把 分频系数可以改为0吗,我想最大频率产生时钟
回复 支持 反对

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2020-12-4 15:37:25 | 显示全部楼层
分频可以为0,但是ARR不能太小,不知道咋回事就先用65535
回复 支持 反对

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-12-4 16:38:24 | 显示全部楼层
都在中断里面执行了
回复 支持 反对

使用道具 举报

1

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2020-11-7
在线时间
44 小时
发表于 2020-12-7 12:28:06 | 显示全部楼层
看一看定时器的分频、自动重装、中断的原理。
推荐:原子的库函数教材,要不直接看《STM32中文参考手册》
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 11:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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