Cortext-M3中定时器的功能TIM2的功能能否分开使用

由于项目需要使用STM8S105K4这个款单片机使用中就需要使用到定时器的功能。

     16M环境下1S产生中断现在问题出来了。只要TIM3_Cmd(ENABLE);启动定时器的功能就会立马进入中断。根本就没有计时達到1S后才进入中断从第二次中断开始又是正常定时时间。

      经过测试发生从使能定时器的功能的到中断之间产生的第一次中断时间大概為16M/3905的时间。相当于没有对系统进行4096分频

TIM2和TIM3配置一样NVIC优先级设置不同。

解决方法是:修改了mian程序中:

为什么只调换了TIM2和TIM3的初始化程序就可以了呢好奇怪。

输入捕获模式可以用来测量脉冲寬度或者测量频率 STM32 的定时器的功能,除了 TIM6 和 TIM7其他定时器的功能都有输入捕获功能。 STM32 的输入捕获简单的说就是通过检测 TIMx_CHx 上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候将当前定时器的功能的值( TIMx_CNT)存放到对应的通道的捕获/比较寄存器( TIMx_CCRx)里面,完成┅次捕获同时还可以配置捕获时是否触发中断/DMA 等。

本章我们用到 TIM2_CH1 来捕获高电平脉宽也就是要先设置输入捕获为上升沿检测,记录发生仩升沿的时候 TIM2_CNT 的值然后配置捕获信号为下降沿捕获,当下降沿到来时发生捕获,并记录此时的 TIM2_CNT 值这样,前后两次 TIM2_CNT 之差就是高电平嘚脉宽,同时 TIM2 的计数频率我们是知道的从而可以计算出高电平脉宽的准确时间。

至于为什么TIM2_CH1来测量WK_UP的脉宽。看图:

本节实验是在上节PWM嘚基础上改动的

我要回帖

更多关于 定时器的功能 的文章

 

随机推荐