【潘多拉 STM32L475 IOT开发指南】【基础】1.LED

第一章 LED

GPIO(General-Purpose IO ports,通用输入/输出接口),用于感知外界信号(输入模式)和控制外部设 备(输出模式)。 在嵌入式开发中,经常需要用到一些外部功能模块,比如LED、按键、蜂鸣器、温度传感器等,这些外 设模块都比较简单,只需要MCU的GPIO与模块连接,控制引脚输出/读取高低电平即可。还有一些外部功能模块,需要多个引脚构成的"协议"进行通信,比如UART、I 2 C、SPI接口等。 如今的MCU大都采用引脚复用技术,即一个GPIO,即可以直接控制其输出高低电平,也可以设置为某个协议的引脚之一,比如I 2 C的时钟信号引脚SCK。此外,有些MCU的引脚,还能设置为ADC模式读取模拟信号,或者设置为DAC模式输出模拟信号,本章主要针对引脚的GPIO模式讲解。

CubeMX配置

如图将 LED 的引脚的 GPIO mode 设置为 Out Push Pull

Maximun output speed 设置为 Very High

Cubeide代码

先创建初始化代码

c 复制代码
/*
* @brief LED灯初始化
*/

void app_led_init(void)
{
HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED_G_GPIO_Port, LED_G_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED_B_GPIO_Port, LED_B_Pin, GPIO_PIN_SET);
}

创建一个枚举类型

c 复制代码
typedef enum
{
LED_R =0,
LED_G =1,
LED_B =2

}LED_TYPE;

编写一个应用层的代码用来控制LED 的 颜色和亮灭

c 复制代码
/*
* @brief LED灯控制
* @param led 类型
* @param mode 控制
*/
void app_led_control(LED_TYPE led,uint8_t mode)
{
if(led == LED_R)
{
if(mode ==0)
HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_SET);
else
HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_RESET);
}
if(led == LED_G)
{
if(mode ==0)
HAL_GPIO_WritePin(LED_G_GPIO_Port, LED_G_Pin, GPIO_PIN_SET);
else
HAL_GPIO_WritePin(LED_G_GPIO_Port, LED_G_Pin, GPIO_PIN_RESET);
}
if(led == LED_B)
{
if(mode ==0)
HAL_GPIO_WritePin(LED_B_GPIO_Port, LED_B_Pin, GPIO_PIN_SET);
else
HAL_GPIO_WritePin(LED_B_GPIO_Port, LED_B_Pin, GPIO_PIN_RESET);
}
}
相关推荐
逐步前行7 小时前
STM32_TIM_寄存器操作
stm32·单片机·嵌入式硬件
0南城逆流08 小时前
【STM32】知识点介绍七:PWM功能
stm32·单片机·嵌入式硬件
智者知已应修善业8 小时前
【51单片机独立按键控制数码管移动反向,2片74CH573/74CH273段和位,按键按下保持原状态】2023-3-25
经验分享·笔记·单片机·嵌入式硬件·算法·51单片机
dashizhi20158 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑
我是一棵无人问荆的小草8 小时前
单片机通电后延迟启动策略
单片机·嵌入式硬件
日更嵌入式的打工仔9 小时前
UART RX为什么要上拉
单片机
华奥系科技11 小时前
智慧经济新格局:解码社区、园区与城市一体化建设逻辑
大数据·人工智能·科技·物联网·安全
TDengine (老段)11 小时前
TDengine IDMP 组态面板 —— 画布
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
三佛科技-1873661339712 小时前
FT32F030F6AP7高性能32位RISC内核MCU解析(兼容STM32F030K6TP7)
stm32·单片机·嵌入式硬件
LCMICRO-1331084774613 小时前
长芯微LDC90810完全P2P替代ADC128D818,是一款八通道系统监控器,专为监控复杂系统状态而设计。
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换芯片adc