硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3493|回复: 7
收起左侧

[客户分享] PWM驱动蜂鸣器,实现关操作设置管脚电平为低

[复制链接]

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2018-9-13 15:01:51 | 显示全部楼层 |阅读模式
这个话题貌似网上很多零散碎片信息。
今天折腾了几个TIM开关,最后输出的电平还是随机值。

最后溯源,PWM的电平高低是跟计数器的值直接有关。
刚开始用 这个命令测试:TIM1->ARR = 19500;  
99%的概率输出都为低
注:定时器和数值请根据自己实际平台调整。

继续查看库文件,瞄准了这句话 TIMx->CNT = Counter;
以前蜂鸣器变音,就是临时改CNT值。最后结合自己当前的PWM高低时间和占空比的细节,
选择一个合适的值,在关蜂鸣器输出前,重新给CNT赋予合适的值就能实现PWM关输出后,管脚电平为低的效果。

Releasing your creativity
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
 楼主| 发表于 2018-9-13 15:04:58 | 显示全部楼层
顺便分享一个实测数据。当前电源纹波30KHz,这个纹波进入CPU,同时初始化的IO口也能量到这个纹波,导致蜂鸣器有杂音。
Releasing your creativity
回复

使用道具 举报

36

主题

1445

回帖

1553

积分

至尊会员

积分
1553
发表于 2018-9-13 23:16:18 | 显示全部楼层
这个方法感觉不可靠,最好关闭pwm后,置电平为高或者低
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
 楼主| 发表于 2018-9-14 08:37:50 | 显示全部楼层
sanit 发表于 2018-9-13 23:16
这个方法感觉不可靠,最好关闭pwm后,置电平为高或者低

你的操作姿势是怎样的,分享一下?
Releasing your creativity
回复

使用道具 举报

2

主题

569

回帖

575

积分

金牌会员

积分
575
发表于 2018-9-25 08:17:21 | 显示全部楼层
我也遇到这个问题了,关闭pwm后,引脚电平随机
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
 楼主| 发表于 2018-9-25 08:44:23 | 显示全部楼层
leiyitan 发表于 2018-9-25 08:17
我也遇到这个问题了,关闭pwm后,引脚电平随机

技术初始电平是自己配置的,PWM的脉宽也是自己设置的值。关之前重新赋低电平值就行了。
Releasing your creativity
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2019-2-25 15:36:12 | 显示全部楼层
PWMMODE1,有效电平为High,再把PWM的占空改设为0即可输出低电平
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
 楼主| 发表于 2019-2-26 09:13:45 | 显示全部楼层
xyang.z_OGGU4 发表于 2019-2-25 15:36
PWMMODE1,有效电平为High,再把PWM的占空改设为0即可输出低电平

是的,玩多几次,琢磨多几次就可以找到很多本质上的方法了。 刚开始的时候,难免很多配置选项都模棱两可,理顺了就方便得心应手。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-11 17:50 , Processed in 0.264293 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表