完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这段时间eBox在不断的更新内容,先上一个最新的支持!定时器输入捕获模式
基础知识: STM32输入捕获模式,主要用于测量输入信号的周期,进而计算波形的频率。正常情况下。输入捕获模式只能测量周期,因为stm32在输入捕获模式设置为检测上升沿或者下降沿。当检测到边沿后,保存定时器的当前值到tiMx->CCR1寄存器。在中断中读取此寄存器就可以得到两个上升沿或者下降沿之间的脉冲数,然后在根据定时器的时钟去计算波形的周期。 如果要测量占空比就要在中断中重新设置边沿即可。 特点 1.支持TIM2,3,4的ch1,2,3,4.共计12个通道 2.支持测量周期、频率、高级用法支持测量占空比 3.定时器计数器最大值为0xffff,为了突破这个限制, 在本例程中,如果使用了update溢出中断调用overflow_event_process可以将计数器 拓展至2^32。大大提高测量范围,可以实现最高频率(1分频)测量周期低于60s的信号,如果信号长度。 如果使用2分频,可测量周期低于120s的信号,如果信号长度。以此类推。 4.get_captur()的精度补偿值 //此处要加一个简单的修正值,此数为测试大致测试结果 //分频系数 | 补偿值 | TIM时钟频率 | 测试频率 //7200分频 | 0 | 0.01M | 1hz-100hz //720分频 | 1 | 0.10M | 100-1K //72分频 | 2 | 1.00M | 1K //64分频 | 3 | 1.125M | 1K //36分频 | 5 | 2.00M | 1K //32分频 | 6 | 2.25M | 1K //18分频 | 11 | 4.00M | 1K //16分频 | 11 | 4.50M | 1K //9分频 | 18 | 8.00M | 10K //8分频 | 21 | 9.00M | 10K-50K //4分频 | 42 | 18.0M | 10K-50K //2分频 | 84 | 36.0M | 10K-50K //1分频 | 168 | 72.0M | 10K-50K 5.关于分频系数和脉冲宽度测量的计算关系,要遵循一个原则:在不溢出的情况下尽量使用低分频系数(高TIM时钟)去检测对象 重点: 在采用低分频系数的时候,可以保证测量精度,但是会增大定时器溢出频率,进而增大cpu开销, 在采用高分频系数的时候,测量精度较低,但是会降低定时器溢出频率,进而降低cpu开销, stm32在72M主频下,最高可测160Khz的信号。如果再大,将无法测量。 测试例程
应用场合 1.红外遥控接收解码。 2.DS18B20温度解读。DHT11温湿度模块读取温度 3.测电机转速。 等等,只要是需要测频率、周期、占空比相关的,都可以用此代码来实现! 上传一个工程:
ebox_stm32_输入捕获.rar
(1.79 MB, 下载次数: 181
)
我的众筹项目地址:http://z.elecfans.com/30.html 期待大家一起来完善和发展eBox,打造国人自己的库,不仅仅支持STM32,更能支持飞思卡尔MCU、NXP MCU······ |
|
相关推荐
|
|
【嵌入式SD NAND】基于FATFS/Littlefs文件系统的日志框架实现
380 浏览 0 评论
求助!STM32F4单片机编程与设计sEMG信号采集电路问题
851 浏览 0 评论
2573 浏览 1 评论
2594 浏览 1 评论
stm32 CubeMx 怎么实现SD卡/sd nand FATFS读写测试
333 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-19 13:02 , Processed in 0.573367 second(s), Total 70, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号