最近看资料说:STM32F101xx系列产品中内置了3个通用定时器TIM2、TIM3、TIM4,每个定时器都有一个16位的自动加载递加/递减计数器、一个16位的预分频器和4个独立的通道,每个通道都可用于输入捕获、输出比较、PWM和单脉冲模式输出,在最大的封装配置中可提供最多12个输入捕获、输出比较或PWM通道。但是通用定时器中只有四个比较/捕获寄存器CCR1~CCR4,于是我就有以下的疑问:
1:在固件库中TIM_SetCompare1(TIM2)与TIM_SetCompare1(TIM2)有解释设置某个 TIM 捕获比较1 寄存器的值,这里的捕获比较寄存器1是否就是同一个计数器也就是CCR1呢?
2:如果对1的回答是,那么以下情况有是怎么回事呢?
a、如果对TIM2的通道1设置为输入捕获状态,那么CCR1用来锁定计数器的值,CCR1就是只读的了。此时,如果TIM3要设置CCR1就不能实现。
b、如果对TIM2的通道1设置为输出比较状态,TIM_SetCompare1(TIM2, IC1_Value),就设置了CCR1的值了。此时如果中断还没有产生,TIM_SetCompare1(TIM3, IC2_Value),那是不是重新设置了CCR1了?
3:如果对1的回答位否,那么感觉就像每一个TIM有4个通道,每一个通道对应1一个比较/捕获寄存器,岂不是与通用定时器只有4的比较/捕获寄存器相矛盾了?
如何利用4个比较/捕获寄存器来产生12个输出比较中断呢?
期待高手回答,先谢过了!!
不知道是不是理解了楼主的意思,答案应该很简单
TIM2有TIM2的CCR1,TIM3有TIM3的CCR1,它们互不干扰。
TIM2有TIM2的CCR1,TIM3有TIM3的CCR1
如果这样推理的话,那就是说三个通用计数器其实有12个CCR了
2楼的答案真受用! 类比STM32103也是一样的.
RE
101不熟悉,我知道103,每个通用定时器有4个捕获比较通道,相对其他定时器这些通道都是独立的,如果设置了输入捕获模式就不能用做输出比较了。其实这个在函数库中也有涉及:
TIM_SetCompare1 Set the TIMx Capture Compare1 Reigster Value ;
TIM_SetCompare2 Set the TIMx Capture Compare2 Reigster Value ;
TIM_SetCompare3 Set the TIMx Capture Compare3 Reigster Value ;
TIM_SetCompare4 Set the TIMx Capture Compare4 Reigster Value ;
上面不是写着TIMx吗?
同时我试过用TIM3和TIM4实现2路可控硅调光