OpenEdv-开源电子网

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

求大神指导:STM32F103ZET6 关于通用定时器时钟源选择的问题

[复制链接]

5

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-2-12
在线时间
22 小时
发表于 2016-10-27 17:28:01 | 显示全部楼层 |阅读模式
本帖最后由 monkeyliu 于 2016-10-28 14:55 编辑

各位大神请教一个问题,在看战舰库函数开发指南时,通用定时器时钟源有4个,如下图:
QQ截图20161027172300.png

在后面的定时器中断实验、PWM输出及输入捕获实验都选择的是CK_INT,但是没看到TIMx_SMCR这个寄存器的初始化函数。
请问,这个实在那里选择的,谢谢。





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

使用道具 举报

3

主题

2165

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5773
金钱
5773
注册时间
2013-11-22
在线时间
1211 小时
发表于 2016-10-28 15:22:49 | 显示全部楼层
monkeyliu 发表于 2016-10-28 14:57
谢谢,这个开启时钟我知道,就是没看到在哪里选择CK_INT作为TIM的时钟源。

TIM_InternalClockConfig(TIM3); 这个是设置TIM_SMCR低三位为0,也就使用内部时钟了
stm32复位后TIM_SMCR的低三位默认就为0,所以可以不用配置这个函数也可以
这个函数真正用到的情况是,你开始配置定时器为外部时钟模式或者外部触发模式,但是用着用着,你突然又想切换定时器为内部时钟模式,那么这个函数就起作用了
回复 支持 1 反对 0

使用道具 举报

3

主题

2165

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5773
金钱
5773
注册时间
2013-11-22
在线时间
1211 小时
发表于 2016-10-27 20:29:30 | 显示全部楼层
默认都是使用 CK_INT, 如果要使用其他时钟源则要配置 TIMx_SMCR
回复 支持 反对

使用道具 举报

5

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-2-12
在线时间
22 小时
 楼主| 发表于 2016-10-28 10:43:17 | 显示全部楼层
lycreturn 发表于 2016-10-27 20:29
默认都是使用 CK_INT, 如果要使用其他时钟源则要配置 TIMx_SMCR

谢谢,默认的配置是怎么处理的,那个文件或者函数可以看到?
回复 支持 反对

使用道具 举报

3

主题

2165

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5773
金钱
5773
注册时间
2013-11-22
在线时间
1211 小时
发表于 2016-10-28 12:09:46 | 显示全部楼层
monkeyliu 发表于 2016-10-28 10:43
谢谢,默认的配置是怎么处理的,那个文件或者函数可以看到?

比如这个   RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
就开启了TIM3的时钟  (CK_INT)
回复 支持 反对

使用道具 举报

5

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-2-12
在线时间
22 小时
 楼主| 发表于 2016-10-28 14:53:55 | 显示全部楼层
本帖最后由 monkeyliu 于 2016-10-28 15:22 编辑

TIM_InternalClockConfig(TIM3);  这一句应该是选择内部时钟CK_INT为TIM3时钟源。这句如果不写就等于是默认选择CK_INT为TIM时钟源,这样理解对吗?

888.png

我在网上搜到的程序,注释里也是这样写的。

999.png
这一句加进战舰程序后,查了一下,如下:

77.png
66.png
444.png


回复 支持 反对

使用道具 举报

5

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-2-12
在线时间
22 小时
 楼主| 发表于 2016-10-28 14:57:26 | 显示全部楼层
lycreturn 发表于 2016-10-28 12:09
比如这个   RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
就开启了TIM3的时钟  (CK_INT)

谢谢,这个开启时钟我知道,就是没看到在哪里选择CK_INT作为TIM的时钟源。
回复 支持 反对

使用道具 举报

5

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-2-12
在线时间
22 小时
 楼主| 发表于 2016-10-28 15:24:17 | 显示全部楼层
lycreturn 发表于 2016-10-28 15:22
TIM_InternalClockConfig(TIM3); 这个是设置TIM_SMCR低三位为0,也就使用内部时钟了
stm32复位后TIM_SMC ...

谢谢,您这样说我就理解了。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-24 11:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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