欢迎您光临五金加工厂,如有问题请及时联系我们。

STM32F103怎样用定时器来测出某个高电平的时间?

作者:五金加工
文章来源:本站

  

STM32F103怎样用定时器来测出某个高电平的时间?

  

STM32F103怎样用定时器来测出某个高电平的时间?

  

STM32F103怎样用定时器来测出某个高电平的时间?

  

STM32F103怎样用定时器来测出某个高电平的时间?

  给你提供个思路,以12M晶振为例,

  如果高电平时间比较短(大概35ms以内)可以使用外部中断的下降沿中断,当外部中断发生时关闭定时器,记录定时器TH0TL0的值,记录的定时器TH0TL0的值就是高电平的时间、等待中断输入引脚电平为高电平,清零TH0TL0并启动定时器,反复循环。

  如果高电平的时间大于35ms,则需要打开定时器中断,定时器溢出一次中断溢出次数Count++,用外部中断的下降沿中断,当外部中断发生时关闭定时器,记录定时器TH0TL0的值、计算高电平时间(高电平时间=定时器的值+Count*定时器的溢出时间),清零Count,等待中断输入引脚电平为高电平,清零TH0TL0并启动定时器,反复循环。

  可以用定时器的事件(上升或下降沿)捕捉功能,不过应用有点儿复杂, 也可以象51单片机那样,在低电平时等待,高电平时启动定时器,低电平再次来到时,关闭定时器,读出定时器的数值即可

来源:文章来源于网络,如有侵权请联系我们删除。本文由五金加工编辑,欢迎分享本文,转载请保留出处和链接!