xiangnan949 发表于 2020-8-14 15:01:21

STM32F407定时器初始化Prescaler和Period是不是不能同时设置成0...

调试STM32F407定时器timer1,现在APB2调成了168M,我想让timer1每个周期都进中断,所以就把Prescaler和Period都设置成0了,用下面这个公式:
f=tck/(psc+1)*(arr+1)
tck为时钟频率,psc为时钟预分频系数,arr为自动重装载值;
理论上应该是可以的,但是发现这样设置每次都进不了中断,之后把Period调成1了,就可以进中断了,但是频率没有84M,这种情况是不是我设置的频率太高了处理不过来,会有问题呢,求大神指点指点~
下面是定时器配置

定时器回调函数


Tcreat 发表于 2020-8-14 16:21:22

应该不可以为0

xiangnan949 发表于 2020-8-14 17:01:22

Tcreat 发表于 2020-8-14 16:21
应该不可以为0

其中一个为0就是没有问题的(我试了预分频参数为0没问题),还有一点就是我把Prescaler和Period设置的大些,这样整体的频率就很准,但是设置很小频率就不准了,一个周期会比正常的要长

tanic 发表于 2020-8-14 17:25:48

牛皮

likang1202 发表于 2020-8-14 17:38:08

大佬的操作深不可测

xiangnan949 发表于 2020-8-14 17:39:44

tanic 发表于 2020-8-14 17:25
牛皮

是菜鸟,哪里不对能帮忙指出来吗

xiangnan949 发表于 2020-8-14 17:40:04

likang1202 发表于 2020-8-14 17:38
大佬的操作深不可测

是个菜鸟,哪不对能帮忙指出来吗

xiangnan949 发表于 2020-8-14 17:44:41

其实我想调这么高的频率,就是想输出两种频率的二十几兆的方波,两种方波来回切换,还要要求相位对应,没有办法了,就想到频率调到最高,然后在中断中计数方法来实现,大神们,我这个哪里有问题,希望各位不吝赐教~~

发表于 2020-8-14 22:16:43

Each time the REP_CNT related downcounter reaches zero, an update event is generated
and it restarts counting from REP value.
从功能上理解,per时TIM++或者--后与per相比较,当per为0时或者上限时产生中断。可以理解当配置为0时,TIM就不能正常工作了。
页: [1]
查看完整版本: STM32F407定时器初始化Prescaler和Period是不是不能同时设置成0...