【潘多拉 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);
}
}
相关推荐
千秋岁rr7 分钟前
5.0 TIM
单片机·嵌入式硬件
小僧景贤1 小时前
STM32 startup.s 启动文件与 .map 映射文件深度技术解析(md/hd 版本差异化对比)
stm32·内存映射·startup.s·map 文件·单片机启动流程
悟天特斯2 小时前
智慧楼宇边缘计算实战:从端侧自治到云边协同的算力下沉架构
人工智能·物联网·架构·边缘计算
2601_966799043 小时前
CH398 技术解析:USB 3.0转千兆以太网单芯片方案与内置电源设计要点
单片机·嵌入式硬件
zlinear数据采集卡4 小时前
数据采集卡从入门到精通(38):上位机开发实战——Python/QT/LabVIEW的技术选型与分层架构
python·单片机·嵌入式硬件·qt·fpga开发·开源·labview
嵌入式阿蔡4 小时前
项目实战 02:智能家居环境网关——ESP32 做 BLE 中心 + 本地联动
网络·单片机·嵌入式硬件·esp32·智能家居·嵌入式实时数据库
简单电磁炮5 小时前
ADXL345调试
单片机·嵌入式硬件
LCG元5 小时前
STM32 软件模拟 I2C 驱动 AT24C02 EEPROM:从时序原理到实测读写全记录
stm32·单片机·嵌入式硬件
振南的单片机世界5 小时前
终端电阻硬核拆解:不接120Ω,RS485信号“撞墙反弹”乱码
arm开发·stm32·单片机·嵌入式硬件
aspirant-complete5 小时前
MAC(Apple Silicon)嵌入式基于Clion(stm32CubeMX)环境搭建
stm32·macos