3.2.7 补充知识点
调用库函数的方法:
1、直接通过.h文件,拖到最下面,看有哪些函数可以调用,再右键转到定义,查看一下函数和参数的用法
2、使用文件夹中的库函数使用手册,中文文档可以直接使用,但是部分用法会有一些出入,大部分问题不大
3.3 GPIO输入知识
3.3.1 按键介绍
按键:常见的输入设备,按下导通,松手断开
按键抖动:由于按键内部使用的是机械式弹簧片来进行通断的,所以在按下和松手的瞬间会伴随有一连串的抖动
解决抖动办法:在抖动期间加一个延时,把抖动时间过滤过去
3.3.2 传感器模块
传感器模块:传感器原件的电阻会随外界模拟量的变化而变化,通过与定值电阻分压即可得到模拟电压输出,再通过电压比较器进行二值化即可得到数字电压输出
N1:传感器原件所对应的电阻,可以根据环境的光线、温度等模拟量进行变化
R2:和N1进行分压的定值电阻,和N1串联,一端在GND负极,一端在VCC正极
以上就是基本的分压电路
C2是一个滤波电容,它是为了给中间的电压输出进行滤波的,保证输出电压波形的平滑,一般遇到这种结构都要考虑一下这个电容是不是滤波电容的作用,如果是那就是保证波形的,不是电路的主要框架,在分析电路时候可以先抹掉
AO:模拟信号输出端口,N1阻值变化之后,其两端电压也就会变化,此时AO位置的电压也就会随之变化,因此AO直接通过右边图进行输出
模块同时还支持数字输出,数字输出就是对AO进行二值化输出,二值化输出是通过LM393来完成的,是一个电压比较器芯片,里面有两个独立的电压比较器电路,C1是电源供电的滤波电容
电源比较器其实就是一个运算放大器,
当同相输入端电压大于反相输入端,那么输出VCC,反之输出GND
传感器模块中的IN+接到了AO,就是模拟电压端,IN-接了一个电位器,电位器的接法也是分压电阻的原理,两个电压进行比较,最终输出结果就是DO,数字电压输出,DO最终接到了引脚的输出端。
右边两个是指示灯电路,左边是电源指示灯,通电就亮,右边是DO输出指示灯,低电平点亮,高电平熄灭,DO这里多了个R5上拉电阻,这个是为了保证默认输出为高电平的。
3.3.3 硬件电路
一般采用上面的方法进行连接,原因跟LED的接法类似,是电路设计的习惯和规范
当按键悬空的时候PA0的引脚电压不确定,所以在这种接法下,要求PA0必须是上拉输入的模式,否则就会出现引脚电压不确定的情况;因此在这种方式下,按下按键引脚为低电平,松手引脚为高电平;但是右边的图接入了上拉电阻,此时引脚配置可以为浮空输入或上拉输入