STM32-GPIO输出以及按键控制LED&光敏传感器控制蜂鸣器

按键:是常用的输入设备,按下导通松手断开。

按键抖动:因为内部使用弹簧片进行导通,所以在按下或松手瞬间会产生一连串抖动。

传感器模块介绍:

1.光敏电阻传感器2.热敏电阻传感器3.对射式红外传感器4.反射式红外传感器

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

模拟电压输出就是图中的1,通过N1和R1进行电阻分压输出模拟信号(两个分压可以类比上拉下拉电阻)。数字输出就是图中的2,通过对AO二值化输出(运算放大器当比较器)。

C语言数据类型:

C语言宏定义:

关键字:#define 作用:用一个字符串代替一个数字或常用的一个参数。

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

#define 与typedef区别:1.typedef新名字在右边,#define新名字在左边。 2.#define任何名字都可以更换,typedef只能给变量类型换名字。

按键控制LED代码:

按键模块代码:

完成按键初始化和扫描按键,获取按键编号作用。

LED驱动模块:

作用:初始化 PA1、PA2 引脚,提供 LED 点亮、熄灭、翻转的函数,给 main 主函数调用

主函数代码:

光敏电阻控制蜂鸣器代码:

蜂鸣器模块代码:

设置蜂鸣器初始化函数,蜂鸣器启动关闭,蜂鸣器反转。

光敏传感器代码:

设置初始化函数,获取光敏模块输出的数字信号函数(读取P13引脚电平获取信号)。

主函数代码:

总结:

**第一点:**每个模块代表一块硬件及其功能,每个模块都需要有初始化函数来开启GPIO时钟,创建结构体配置结构体(包括输出模式、控制的接口、传输速度),最后将配置写入STM32寄存器中。

第二点:代码中常用下列四个函数读取外部引脚的真实电压和读寄存器写出的值

uint16代表unsigned short uint8代表unsigned int。

第一个函数用于读取输入寄存器的某一位,第二个函数用于读取整个输入寄存器。

第一个函数用于读取输出寄存器的某一位,第二个函数用于读取整个输出寄存器。

相关推荐
数字新视界1 小时前
U位资产管理系统发布全面数字化监控解决方案
嵌入式硬件·物联网·系统架构·机房管理·动力与环境监控系统
qq_401700413 小时前
FreeRtos:SysTick的功能分析
单片机·嵌入式硬件
zbyyd4 小时前
i.MX6ULL 裸机开发|GT9147 触控 + SPI 与 ADXL345 加速度传感器驱动
单片机·嵌入式硬件
fly_sunnn4 小时前
STM32-LED闪烁·LED流水灯·蜂鸣器
stm32·单片机·嵌入式硬件
jianqiang.xue4 小时前
【CStackGUI 实战】画板 drawpad:鼠标拖拽作图、撤销 / 重做、导出 PNG
单片机·嵌入式·cstackgui·c语言gui·可视化拖拽
新晨单片机设计5 小时前
S022A-基于STM32单片机音乐盒(数码管显示)【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·音乐盒
深圳老胡5 小时前
STM32 MCU 国产替代型号简介
笔记·stm32·单片机·代码规范
殷忆枫6 小时前
基于STM32的独居老人语音/一键双模紧急呼救系统设计与实现
stm32·嵌入式硬件·xcode
暖焰核心6 小时前
USART 概念篇——从高低电平到数据帧
stm32