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。

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

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

相关推荐
zhangrelay1 小时前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习
comyccccc2 小时前
STM32F103C8T6最小系统板设计全解析学习笔记
单片机·1024程序员节
Industio_触觉智能2 小时前
把NPU检测直接嵌进采集终端|RK3576 AI采集终端全链路拆解教程-下
嵌入式硬件·ai·硬件架构·npu·ai视觉·rk3576·采集终端
en.en..3 小时前
STM32 GPIO ODR 与 BSRR 寄存器完整对比详解
单片机·嵌入式硬件
HQB20266 小时前
EG1182|屹晶微电子 60V 内置高压管异步降压 DC‑DC
嵌入式硬件·硬件工程
LCG米7 小时前
STM32硬件SPI驱动SSD1306 OLED实测:上电黑屏排查、页寻址模式与取模扫描方向陷阱
stm32·单片机·嵌入式硬件·嵌入式
深圳老胡8 小时前
STM32C5A3ZG 网络调试总结:从启动失败到连续 Ping 稳定
笔记·stm32·单片机·代码规范
qq_401700418 小时前
100 个 IoT 小项目,给 ESP32 入门补上实操
前端·网络·stm32
硅基造物主8 小时前
STM32 从 0 到 1 做智能家居(八):PWM 控制风扇、加热片与 SG90 窗帘
stm32·嵌入式硬件·智能家居·hal库·pwm
简单电磁炮8 小时前
关于adc采集
stm32·单片机