【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个主要的读取和写入函数

相关推荐
Deitymoon1 小时前
ESP8266——透传
单片机·网络协议·tcp/ip
zhangrelay1 小时前
云课实践速通系列-基础篇汇总-必修-通识基础和专业基础-2026--工科--自动化、电气、机器人、测控等
linux·笔记·单片机·学习·ubuntu·机器人·自动化
Deitymoon3 小时前
ESP8266——UDP传输
单片机·网络协议·udp
踏着七彩祥云的小丑3 小时前
嵌入式——认识电子元器件——光电器件系列
单片机·嵌入式硬件
羽获飞3 小时前
从零开始学嵌入式之STM32——31.高级定时器
stm32·单片机·嵌入式硬件
iCxhust5 小时前
一块电路板的自觉
单片机·嵌入式硬件·嵌入式·微机原理
学习者1234567895 小时前
Bootloader跳转APP代码流程
单片机·嵌入式硬件
ACP广源盛139246256735 小时前
一芯搞定多屏高清@ACP#GSV1221 DP 1.4 MST 转 HDMI 1.4 高集成转换芯片
网络·人工智能·嵌入式硬件·计算机外设·电脑
iCxhust6 小时前
在 emu8086 中可以直接编译运行的完整汇编程序,演示数组的定义、遍历、求和、求最大值。
开发语言·前端·javascript·汇编·单片机·嵌入式硬件·算法
LCG元6 小时前
STM32实战:基于STM32F103的SG90舵机控制(PWM精准控制)
stm32·单片机·嵌入式硬件