刘刘 stm32学习日记 (三)GPIO输入及一些C语言

一、输入设备:按键

但按下时通常会产生抖动,可以通过软件或硬件进行消抖,软件的话就是采用二次判断,排除因为误触发。

二、接线图:    

三、

(1)创建led的驱动函数,LED.c及.h文件

开启时钟,初始GPIO,然后给引脚写高初始熄灭led,库函数里边再次调用函数名进行模块外部声明。

编写Led点亮熄灭的函数,同时记得在.h里再次外部声明下

点亮测试下:

(2)同样编写  按键的函数.c  .h文件

先设置输入时钟,然后初始化一下引脚(采用上拉模式)

然后开始设置按键的返回值函数,用于控制灯的指令,  (逻辑:按下后进行判定,然后延迟一下再次判定是否按下,而不是由于干扰导致的,如果按下了那么KeyNum赋值为1,)

最后写主函数进行按键控制led(逻辑:先调用初始化函数,然后在主函数里一直进行按键检测,当按下时KeyNum值发生变化,从而控制led的状态发生变化)

就可以实现按键控制led亮了,要想闪烁还可以加一个状态翻转函数(通过读取输出的值进行状态判断及控制)

前两个读取输入的数据,34为读取输出的数据,

------------------------------------------------------------------------------------------------------------------------

四、通过光敏传感器控制蜂鸣器

使用LM393比较器内含两路比较器,图中R2为参考比较电压可以通过可调电阻进行调节从而改变IN-点的电压,N1为传感器器件,当光被遮挡时,电阻的阻值降低,根据分压原理,N1上的电压降低,然后和IN-进行比较,低于IN-时,A0输出低电平(平时N1上的阻值比较高,A0从而输出高电平);

因此可以通过GPIO读取引脚的输入值,从而和按键逻辑一样控制BEEP的响停。

五、C语言

宏定义

变量类型 换名 函数

结构体   多类型多个数变量的打包

:属于组合数据类型,在函数传递的过程中采用的是指针的方式,

枚举

举例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值