你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F446中定时器TIM2如何设置为32位计数?

[复制链接]
lianglunfei 提问时间:2019-7-18 10:52 /
现在使用STM32F446中的定时器TIM2进行计数,但是计数个数会超过0XFFFF,多说STM32F4系列可以用32位计数,不知道怎么设置呢?请大神指教,谢谢。
批注 2019-07-18 093502.png

库里面定义Period为32位,但是后面的解释又说最大只能到0XFFFF,不知道怎么理解呢?
收藏 评论8 发布时间:2019-7-18 10:52

举报

8个回答
慎微 回答时间:2019-7-18 11:36:53
用cubeMX 定义STM32F446 定时器TIM 2 parameter settings -->counter period(autoreload)值,可以设成32位啊。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

wenyangzeng 回答时间:2019-7-18 11:40:50
本帖最后由 wenyangzeng 于 2019-7-18 11:45 编辑

楼主只要仔细阅读官方F446用户手册就可以知道TIM2的CCRx才是32位的:


无标题5.png


而TIMx_CNT只是16位的

无标题6.png

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

lianglunfei 回答时间:2019-7-18 14:06:53
wenyangzeng 发表于 2019-7-18 11:40
楼主只要仔细阅读官方F446用户手册就可以知道TIM2的CCRx才是32位的:

那是不是可以这样理解:定时器用做捕获时可以到32位,但是要去读这个捕获的数据又只能读到16位?
wenyangzeng 回答时间:2019-7-18 14:12:16
lianglunfei 发表于 2019-7-18 14:06
那是不是可以这样理解:定时器用做捕获时可以到32位,但是要去读这个捕获的数据又只能读到16位? ...

TIMx_CNT与TIMx_CCRx是不同的寄存器呀,也就是说TIMx_CNT只能计数到0XFFFF,而TIMx_CCRx可以捕捉计数到0xffffffff
lianglunfei 回答时间:2019-7-18 16:08:56
wenyangzeng 发表于 2019-7-18 14:12
TIMx_CNT与TIMx_CCRx是不同的寄存器呀,也就是说TIMx_CNT只能计数到0XFFFF,而TIMx_CCRx可以捕捉计数到0xf ...

那么我在定时器编码器模式下,需要读取计数的值,是用getcounter还是用getcapture呢?
wenyangzeng 回答时间:2019-7-18 16:17:46
lianglunfei 发表于 2019-7-18 16:08
那么我在定时器编码器模式下,需要读取计数的值,是用getcounter还是用getcapture呢? ...

判断应该是捕捉模式,只有CCRx才能达到32位
bird0123 回答时间:2019-7-18 17:29:45
跟着大神来学习
Kevin_G 回答时间:2019-7-19 10:21:18
定时器计数器是16bit的,输入捕获是CCR可以到32bit.
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版