湿度未到达阈值,但蜂鸣器一直响的问题

在用stm32做温湿度报警的时候遇到的问题,实际也只是想熟悉一下到达阈值之后蜂鸣器报警的流程,后面要将设置的湿度到达阈值报警改为CO浓度过高报警,或者是烟雾浓度过高报警,更实用一些。

首先,定义了一个u8类型的变量a,将DHT11读取湿度值的十位和个位存放在a中,然后实用判断语句,设置阈值,当湿度到达阈值之后,蜂鸣器间断性报警(就是滴滴~滴滴~)。但是,这时候就遇到了一个问题,明明湿度还没有到达阈值,蜂鸣器就一直响,还不是我设置的间断性的响,而是不间断的一直响,一开始我以为是变量a的问题,后来通过OLED显示a 的值,发现是和检测的湿度值一样的;然后我设置当a小于阈值蜂鸣器响,发现是正常的,当湿度值升高到阈值以上,蜂鸣器就不响了。

最后!我才想起来!之前不知道看哪个老师说过,引脚在没有定义的时候处于悬空状态,那么它有可能是高电平,也有可能是低电平(这里可能有错误,可能没有定义的时候默认是低电平也说不定),所以蜂鸣器才在没有到达阈值之前不按照我设置的方式响,只需要在Beep初始化函数或者在判断语句之前将Beep的控制引脚置一就好了(用的是低电平触发蜂鸣器)

其实要是之前在B站上学习的时候能做好笔记的话,就不会在这种傻瓜问题上卡这么久了,几乎是晚了一天才想起来。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值