关于定时器把,真的没什么好说的了
简单谈下把
1.定时
2.捕获
3.ETR2
4.PWM
5.......
/*********************************************************************************************************/
1.定时
就那样,自己看去吧,没什么好说的
2.捕获
捕获把,也很简单,唯一有个缺点,最近刚发现的,就是测量频率也不是很准,在低频段,当然这是相对的,
对于某些情况来说,这些精度已经很高了,但是相对下面这种方法来说,简直就是渣渣。好吧,至于捕获
也不是很难,自己去查查资料吧
突然想起来有个用捕获测低频段的占空比的,蛮准确的,是吧,就是捕获的时候,一个来测上升沿,
另一个来测下降沿,然后进行处理吧,就这么简单,精度也贼高,当初在屏上显示,基本实现无误差
3.ETR2
外部时钟模式2,其实就是一个计数器,对接入的引脚脉冲不断进行计数,好吧,很简单吧,最当初关于
这个东西,研究了很久,本来以为研究透了,后来发现,用定时器级联并不能成功实现测频率,就是最下
面的,不管是ETR作为主还是从,都实现不了,其实要用定时器级联的主要原因是为了实现同步,
是海螺在群里跟我说的,当时以为找到原因了,后来发现并不是这样的,同步吧,很简单,就是从触发主
然后开始计数,并且计数是在从的第一个边沿开始计数的,这样就很准确了,还有吧,就是一般的思维都是
正向的,也就是说,我定时1s来计数,看看1s内有多少个脉冲,这样在高频误差特别小,但是在低频段的时候,
误差蛮大的,2HZ测得1HZ,你说误差大不大?然后最下面都详细介绍有解决办法,但是由于水平有限,无奈吧
海螺大腿一下子就能搞好。我搞了这么久还是没搞出来,没办法啊,明明知道更有的解决办法,但是吧....
好了,不扯了,简单说下解决办法,后来把,试了好多次,决定还用1s内脉冲计数来测频率,但是采用的是
另一个独立的定时器,专门计时1s然后对ETR2计数来进行处理,然后显示,这样误差只能尽量减小,这也是
没办法的办法了,再到后来用寄存器写这个测量的时候,发现误差贼小啊,当初把我乐坏了,感觉同步开始的
和N个脉冲内用了多少时间的这两个方法的误差一下子补回来了,不过上限不是很高啊,只有36M,从1HZ到36M,
误差只有4.5*10-5,我也没想到啊,当初15年频率计的题目要求是1*10-4,完全达到要求啊,但是上限15年
发挥要求直到100MHZ,简直是既要马儿跑,还不要马儿吃草,无奈啊,说下解决办法吧,我的ETR是默认一分频
的,所以喽,你应该想到,改为最大八分频,至于多少,你看着办吧,只要在测量误差不会出现很大的波动的
情况下,尽量满足题目要求吧。不过吧,这种事情,很多情况下都是难两全,看要求吧。
行吧,ETR就介绍到这里了,你不妨自己动手试试,很有意思的
4.PWM
这个没得说的,很简单,就是输出比较。自己查资料去吧
5.还有一点想说的,就是对定时器的分类有了新的理解,之前只知道是除了高级定时器,其他应该都一样吧
直到今天才发现是有区别的,
比如
1.高级定时器,加了各种互补PWM输出和带死区控制的各种神奇的东西
就是功能更多,更加厉害,不过吧,既然你都这样了,就只能担任更多的责任了。
2.通用定时器 有32位的也有16位的是吧,我通常用定时器2和5(32位)
6.关于定时器
最新推荐文章于 2024-08-04 23:27:09 发布
本文详细探讨了STM32微控制器中的定时器功能,包括如何配置寄存器以实现不同类型的定时任务,如脉冲产生、延时操作等。通过对定时器的工作原理和寄存器设置的解析,读者将能深入理解STM32定时器的使用方法。
摘要由CSDN通过智能技术生成