3. 江协科技STM32的GPIO输入

按键

  • 按键和松开由于5-10ms对于单片机来说很漫长,所以需要对单片机进行过滤。防止按键按一下,单片机会有多次的反映
  • 直接加一个延迟,将5-10ms给耗走就可以了

传感器模块

  • 主要的原理是敏感电阻和定值电阻进行分压,就可以得到模拟电压的输出
  • 然后再通过电压比较器进行二值化,就可以得到数字电压的输出了

下面来讲述一下这个传感器的作用

  • R1是定值电阻,N1是可变电阻
  • R1是和N1进行分压的,一个接到VCC正极,一个接到GND负极,这样就组成了基本的分压电路
  • 然后C2是一个滤波电容,给输出电压进行滤波,消除一些干扰,保证输出电压波形的平滑
  • 一般这种一个接电路,一个接地,需要考虑是不是滤波电容
  • 当N1的阻值变小的时候,下拉作用增强,中间的AO端的电压就会拉低
    • 极端情况:N1阻值为0,AO输出0V
  • 当N1阻值变大,下拉作用减弱,然后R1就会上拉,电压就会升高

可以类比弹簧

  • 分为弱上下拉,和强上下拉

LM393 进行二值化输出,电压比较器芯片

  • C1是滤波电容
  • 这个电压比较器起始就是一个运算放大器

  • 当通向输入端1的电压,大于反向输入端的电压2是,那么输出就会瞬间输出最大值接VCC
  • 反正就会变成最小值,接GND

IN+接到AO这里,就是模拟电压端

IN-接到的电位器,这个电位器的接法,也是分压电阻的原理

最后输出的结果就是DO,数字电压的输出

  • 然后DO就接到了引脚的输出端

LED1是电源知识点,通电就亮,右边的是DO输出指示灯,可以指示DO的输出电平

  • 低电平点亮,高电平熄灭

R5上拉电平,就是默认输出为高电平的

硬件电路

按键这里拥有的四种接法

  • 当按键按下的时候,PA0直接下拉到GND,此时PA0的电压就是低电平
  • 当按键松手的时候,按键就会悬空,此时PA0的电压不确定(必须要去PA0是上拉输入的模式,否则会造成引脚电压不确定)
  • PA0是上拉输入模式,那么按下就是低电平,松开就是高电平

  • 当按键松手的时候,引脚由于R1上拉的作用,就会保持高电平
  • 当按键按下的时候,引脚直接到GND,那么就是低电平
  • 此时PA0的引脚可以配置为浮空输入或者上拉输入
  • 若是上拉输入,那么就是R1和STM32里面的上拉电阻共同作用,此时高电平会更强一些,高电平更加稳定

同理,第一个要配置为下拉输入的模式

第二个为下拉输入模式和浮空输入模式

上面的,按下PA0是高电平,松手是低电平

下面的反之

  • STM32和传感器模块的接地
  • VCC接3.3v
  • GND接地
  • DO随便接一个,用来读取数据
  • AO模拟输出,学ADC模数转换器再说

C语言宏定义

  • 首先define新名字在左边,typedef新名字在右边
  • 宏定义不需要分号,typedef后面必须加分号
  • 宏定义任何名字都可以换,typedef只能给专门的变量类型换
  • 但是对于变量类型而言,typedef更加安全,会对命名进行检查

typedef struct{
    char x;
    int y;
    float z;
}StructName_t;
int main(void){
    StructName_t c;
}

C语言枚举

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值