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

相关推荐
ytttr8736 小时前
F3U源码STM32仿三菱PLC底层实现
stm32·plc
我在人间贩卖青春6 小时前
单片机的时钟源
单片机·嵌入式硬件·时钟源
promising-w7 小时前
线性电源和开关电源
单片机·嵌入式硬件
BackCatK Chen7 小时前
TMC2240 芯片数据手册解读|第二篇MC2240 芯片电气规格与封装信息
嵌入式硬件·步进电机驱动·tmc2240·tmc2240 数据手册解读·电气参数·封装信息·硬件选型
老师用之于民7 小时前
【DAY29】DS18B20 传感器特性、时序协议及 51 单片机驱动开发
c语言·驱动开发·单片机·嵌入式硬件
-Try hard-7 小时前
单片机 | 温度传感器(DS18B20)
单片机·嵌入式硬件
天天爱吃肉82187 小时前
【电机双闭环控制问答:PI 输出为何不同?测功机台架选型有多关键】
功能测试·嵌入式硬件·信息可视化·汽车
学嵌入式的小杨同学8 小时前
STM32 进阶封神之路(二十四):低功耗实战全攻略 —— 电池供电传感器节点(RTC 唤醒 + DHT11 采集 + 功耗优化)
c++·stm32·单片机·嵌入式硬件·mcu·架构·硬件架构
电子工程师成长日记-C518 小时前
51单片机热敏电阻测温
单片机·嵌入式硬件·51单片机
Hello World . .8 小时前
51单片机——UART 串口通信
网络·嵌入式硬件·51单片机