【stm32入门教程】GPIO输入之按键控制LED&光敏传感器控制蜂鸣器

一、模块化编程LED函数

新建一个文件夹hardware用来存放硬件驱动

回到keil,在组里添加对应文件夹和路径

在hardware这里右键添加新的文件,选择。c文件

选择路径为hardware文件夹

接着用同样的方法添加。h文件

编写.h文件

封装LED.c代码

当没有弹出代码提示的话,可以按下快捷键ctrl+alt+空格

和之前讲的一样,编写LED初始化函数

至此,只需要调用一个初始化函数,LED的两个gpio口就可以直接初始化完成了

然后将该函数名放到.h文件里

然后再主函数调用

先包含头文件,然后再调用函数

警告的原因是新写的代码还没有更新,软件还不知道这个代码

烧录进去之后LED点亮,原因是默认低电平,

可以先加一个设置高电平的函数,就不会烧录后直接点亮了

可以定义函数来分别控制LED打开和关闭

二、模块化编程按键函数

按照上面同样的操作步骤编写key.c和key.h文件

编写初始化函数

设置模式为上拉输入,速度其实是输出速度,在这里并不用,选50mhz就行

编写读取按键值函数

第一个是读取端口的某个引脚值,第二个是读取整个端口的寄存器

第三个是读取输出数据寄存器的某一个位

第四个是读取输出数据寄存器的端口

三、模块化编程蜂鸣器函数

按照上面的步骤,添加文件和路径

编写初始化函数

驱动函数同上

四、模块化编程光敏传感器模块

初始化函数

读取端口函数

主函数

五、GPIO的使用方法

初始化时钟

定义结构体,赋值结构体

模式有八种,pin选择引脚(可按位或),speed选择输出速度(要求不高选择50mhz)

使用GPIO_Init函数将指定外设初始化

用8个主要的读取和写入函数

相关推荐
wuyk5555 小时前
98.C语言易混难点:字符数组与字符串指针的底层差异
c语言·开发语言·c++·stm32·嵌入式硬件·算法
恒锐丰-罗生6 小时前
国产 H 桥驱动 SS6289|18V/4A 有刷电机驱动芯片性与应用分析 内置采样 + 多保护,门锁 / 机器人优选器件
驱动开发·嵌入式硬件·硬件工程
zcmodeltech10 小时前
工程机械与矿山机械沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的露天开采-井下掘进-智慧矿山全场景联动方案
数据库·stm32·单片机·嵌入式硬件·制造·多分类
云泽80811 小时前
深入浅出 STM32(十五):多通道GPIO驱动的软件抽象与实现
stm32·单片机·嵌入式硬件
嵌入式阿蔡11 小时前
OTA 实战五(收官):量产落地 Checklist —— 版本号 / 防回滚 / 灰度 / 断点续传
网络·stm32·单片机·嵌入式硬件·嵌入式实时数据库
碧海银沙音频科技研究院12 小时前
基于杰理AC7016C的GTCRN门控卷积神经网络语音增强方法
人工智能·嵌入式硬件·语音识别
ACP广源盛1392462567313 小时前
Qwen3.8‑2.4T 开源落地@ACP#国产 MoE 大模型私有化部署中 DP 重定时器 GSV6155 的硬件链路价值与应用场景
大数据·数据库·人工智能·嵌入式硬件·矩阵·开源
遇雪长安14 小时前
STM32_BOOT未引出_串口升级系统Bootloader方案
stm32·单片机·嵌入式硬件·bootloader
dcdannycheung14 小时前
【无标题】
嵌入式硬件
自小吃多14 小时前
Capture软件原理图添加元器件笔记
笔记·嵌入式硬件