【stm32】GPIO输入

GPIO输入

按键介绍

常见输入设备,按下导通,松手断开
按键抖动 :由于案件内部使用的是机械式弹簧片来进行通断,在按下和松手的瞬间会伴有一连串抖动

传感器介绍

传感器元件(光敏电阻/热敏电阻/红外接收管等)的电阻会随外界模拟量的变化而变化,通过与定值电阻串联分压 即可得到模拟电压输出 ,再通过电压比较器 进行二值化即可得到数字电压输出

C2滤波电容 ,给中间的电压输出进行滤波,滤除一些干扰,保证输出电压波形平滑

在电路里遇到一端接在电路中,另一端接地的电容,考虑是否为滤波电容,若是,则不是电路主要框架,在分析电路的时候,可以先将其抹掉,使分析更加简单

去掉滤波电容之后,构成了基本的分压电路

N1阻值变小时,下拉作用增强,中间AO段的电压就会拉低,极端情况下,N1阻值为0,AO输出被完全下拉,输出0V;反之N1阻值变大时,上拉作用增强,中间AO段的电压就会拉高,极端情况下,相当于断路,输出电压R1拉高至VCC(上下拉电阻)

若阻值为0,则拉力无穷大,若上下阻值均为0,电源短路,应避免这个情况

二值化是通过芯片LM393完成
LM393,电压比较器芯片,里面有两个独立的电压比较器电路,相当于运算放大器,当同相输入端大于反向输入端的电压时,输出会瞬间升高为最大值,就是输出接VCC;反之输出瞬间降为最小值,也就是输出接GND

应用:同相输入端IN+接到AO模拟电压端,IN-接电位器,电位器揭发也为分压电阻原理,拧动电位器,IN-就会生成一个可调的阈值电压,两个电压比较,最终输出结果就是DO,数字电压输出,DO接到引脚的输出端

左边为电源指示灯,通电就亮;右边为DO输出指示灯,可以指示DO的输出电平,低电平点亮,高电平熄灭

R5上拉电阻,保证默认输出为高电平

对于光敏传感器来说,N1为光敏电阻

对于热敏传感器来说,N1为热敏电阻

对于红外传感器来说,N1为红外接收管,此外还会多一个点亮红外发射管的电路

发射管发射红外光,接收管接受红外光,模拟电压表示接收光的强度,电位器换成了两个电阻分压,这样数字输出就是固定阈值的二值化,通常用来检测通断,故阈值不需过多调整

最后有个也是红外发射管和接收管,但其是向下发射红外光,然后检测反射光,可用来做寻迹小车

按键和传感器硬件电路

上面两个为下接按键的方式,下面两个为上接按键的方式,一般来说按键都是用下接的方式,原因跟LED接法类似,是电路设计的习惯和规范

图一

为按键最常用接法,当按键按下时,PA0被直接下拉到GND,此时读取PA0口的电压就是低电平,当按键松开时,PA0被悬空,会导致引脚电压不确定,故这种接法下,要求PA0是上拉输入的模式,此时按下为低电平,松开为高电平

图二

相较于图一,外部接了一个上拉电阻,按键松开时,引脚由于上拉作用,保持高电平;按键按下时,引脚接GND,为低电平,此时PA0引脚可配置为浮空输入或上拉输入,若为上拉输入,为内外两个上拉电阻共同作用,高电平会更强一些,更稳定,但,当引脚被强行拉到低时,损耗也会大些·

图三

要求PA0必须配置成下拉输入,按键按下时,引脚为高电平;松开时,引脚回到默认值低电平,一般单片机不一定有下拉输入的模式,故最好使用上面接法

图四

PA0需要配置成下拉输入模式或浮空输入模式

传感器模块电路:

c语言相关知识点复习

数据类型

char本意是字符型数据的意思,但单片机通常用它存放整数而不是字符

宏定义

#define

用途:用一个字符串代替一个数字,便于理解,防止出错;提取程序中经常出现的参数,便于快速修改

定义宏定义如:#define ABC 12345

引用宏定义如:int a = ABC;//等效于int a = 12345

typedef

用途:将一个比较长的变量类型 换个名字,便于使用

定义typedef:

c 复制代码
typedef unsigned char uint8_t

引用typedef:

c 复制代码
uint8_t a;//等效于unsigned char a

枚举enum

用途:定义一个取值受限制的整型变量,用于限制变量取值范围;宏定义的结合

定义枚举变量:

c 复制代码
enum{FALSE = 0, TRUE = 1} EnumName;

因为枚举变量类型较长,所以通常用typedef更改变量类型名

引用枚举成员:

c 复制代码
EnumName = FALSE;
EnumName = TRUE;

注;本文来源为江协b站课程,为笔记

相关推荐
linweidong3 小时前
嵌入式电机:如何在低速和高负载状态下保持FOC(Field-Oriented Control)算法的电流控制稳定?
stm32·单片机·算法
Zero_Era3 小时前
高性价比安全MCU——LKT6830C
单片机·嵌入式硬件·安全
国科安芯4 小时前
卫星通讯导航FPGA供电单元DCDC芯片ASP4644S2B可靠性分析
单片机·嵌入式硬件·fpga开发·架构·安全性测试
知南x5 小时前
【STM32MP157 视频监控项目】(2) 移植 Nginx
stm32·nginx·音视频
易水寒陈6 小时前
单片机实现的工厂模式
单片机
别了,李亚普诺夫7 小时前
PCB设计大师篇笔记
笔记·嵌入式硬件·学习
点灯小铭8 小时前
双积分AD转换电路
单片机·毕业设计·课程设计·期末大作业
Zeku8 小时前
20260110 - Linux驱动学习笔记:环形缓冲区与按键防丢失
stm32·freertos·linux驱动开发·linux应用开发
youcans_8 小时前
【动手学STM32G4】(8)STM32G431之 DAC进阶
stm32·单片机·嵌入式硬件·dma·定时器
hqwest8 小时前
码上通QT实战14--监控页面06-串口设备数据初始化-
单片机·rs232·serialport·波特率·串口设备·虚拟串口设备软件·qt项目配置文件