完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用pwm去控制超声波模块时,借鉴的程序中:pwm的技术工作模式是one shot,每次去获取超声波模块返回的值,都是一样,肯定是cnt没有变。但如果设置为自动装载mode,能连续获取不同的值。查看TRM,说要重复写CMP值才可以连续不断地one shot。
我不明白的是:PWM_ConfigOutputChannel()这个函数不是已经配置了cmp,我把写在while()中,不就已经相当于重写cmp了,为什么不能连续one shot? 还有一些题外话:自动装载模式下,超声波的噪音很大!!!为什么呢??? 谢谢,请帮忙 |
|
相关推荐
2个回答
|
|
|
|
|
|
首先,让我们来解答为什么用PWM控制超声波模块时,在自动装载模式下会有很大的噪音。
超声波模块在进行测距时有一个回声时间的概念,即向目标发送超声波信号后,等待接收到回声信号的时间。超声波模块通常通过一个引脚将回声信号输出给控制器,控制器可以通过测量回声信号的脉冲宽度或计算回声信号的时间来确定距离。 当使用PWM来控制超声波模块时,通常会使用一个定时器来生成PWM信号。定时器通过在每个周期中改变引脚的电平来控制超声波的发送周期。在自动装载模式下,定时器会自动加载一个比较器(CMP)值来确定PWM信号的高电平持续时间。 然而,对于超声波测距来说,精确的回声时间非常重要。如果PWM信号的高电平持续时间不准确或不稳定,就会导致超声波模块接收到的回声信号有很大的噪音。这是因为当回声信号与发送信号在接收器中混合时,由于回声信号的持续时间发生变化,会导致噪音。 在你提供的信息中,并没有提到具体的代码和硬件架构,所以无法对你的具体代码进行分析和解答。但是根据你的描述,如果你在`while`循环中不断地写入CMP值,理论上是可以实现连续的one shot模式的。你可以通过打印输出CMP的值来确认是否得到了不同的值。 另外,要注意的是,如果你的超声波噪音很大,可能还有其他因素导致。一种可能性是超声波模块本身的质量问题,或者环境中的干扰导致了噪音。你可以尝试在不同的环境下测试,或者更换超声波模块来排除这些问题。 总结一下,要解决超声波模块噪音问题,你可以尝试以下步骤: 1.确认PWM信号的高电平持续时间稳定,并在每个周期内保持一致。 2.确认超声波模块的质量和环境因素是否导致了噪音。 3.根据具体的硬件和代码情况,进一步分析和调试问题。 希望以上信息对你有帮助! |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
250 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
473 浏览 2 评论
571 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
260 浏览 0 评论
400 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11976 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 12:08 , Processed in 0.523278 second(s), Total 44, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号