完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正试图用1 PPR(每转脉冲)传感器测量L432KC Nucleo低速。对于低PPR,建议使用周期测量方法。如果我得到信号的周期,那么我可以应用公式: RPM = 60 /(脉冲周期) 这就是我所拥有的: 在CubeMx中,我设置了定时器2,通道3输入捕捉模式。我的APB2频率是1 MHz。tiM2预分频器为1000,计数器周期为10000.每次给定脉冲时,都会出现下降沿。 现在,在我的代码中:
在while循环中,我有另一个变量: counterVal = __HAL_TIM_GetCounter(htim2);这是获得这段时期的正确方法吗?我希望得到各位的指导,因为这是我第一次使用输入捕获。 |
|
相关推荐
6个回答
|
|
到目前为止,它有一些问题,所以很难一次性找到正确的答案。处理以下提示,看看是否可以到某个地方回答更具体的问题。
对于初学者,您应该注意HAL样板代码中的注释:1)实现您自己的HAL_TIM_IC_CaptureCallback,以便CubeMX不会覆盖您的代码。2)如果使用参数,请不要使用UNUSED。 至于逻辑,回调看起来没问题 - 你在PPR触发发生时抓住定时器值。但是,您需要在某处使用该值来进行RPM计算。 我不确定“while循环”是什么意思,但代码片段看起来并不实用。你已经打电话了,_GetCounter所以不需要再做了。只需使用inputCaptureVal你的回调。还要注意并发性 - 如果inputCaptureVal在中断上下文中更新时尝试使用,则计算可能已损坏。 最后,检查你的单位。听起来你的计数器是以毫秒为单位(1MHz除以1000预分频器),因此要获得RPM,你需要:RPM = 60000 /计数器。 |
|
|
|
我可以在回调中进行RPM计算吗?也就是说
|
|
|
|
一般来说,你想让你的回调非常精简,但一个分区可能就好了。
|
|
|
|
我还可以使用需要2个通道的PWM输入法吗?或者只有一个输入捕获模式的通道就足够了?
|
|
|
|
不确定你指的是什么2通道方法。
|
|
|
|
不错的经验,感谢分享,学习中
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1187 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1122 浏览 2 评论
2223 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1311 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1735 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 06:19 , Processed in 0.695331 second(s), Total 81, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号