LED闪烁功能代码详解

GPIO_InitTypeDef GPIO_InitStructure;

定义一个类型为 GPIO_InitTypeDef 的结构体变量,用于配置 GPIO 的各项参数

GPIO_InitTypeDef 是 STM32 标准外设库中定义的一个结构体,包含以下:

GPIO_Pin:指定要配置的引脚( GPIO_Pin_0 ~ GPIO_Pin_15)

GPIO_Mode:设置引脚的8种工作模式(输入/输出/复用等)

GPIO_Speed:设置输出模式下的最大翻转速度(仅对输出有效,要求不高时一般设置为50MHz)

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

使能 GPIOA 的时钟.

GPIOA 连接在 APB2 总线 上,所以调用的是 RCC_APB2PeriphClockCmd()

参数 RCC_APB2Periph_GPIOA 表示要使能 GPIOA 的时钟,ENABLE 表示开启。

GPIO_Init(GPIOA, &GPIO_InitStructure);

将上面的配置应用到 GPIOA 端口。

此时,PA0 引脚已被配置为 50MHz 推挽输出模式 ,可以由软件控制其输出高低电平 GPIO_SetBits()GPIO_ResetBits()

使用 GPIO_ResetBits / GPIO_SetBits

GPIO_ResetBits(GPIOA, GPIO_Pin_0); // PA0 输出低电平0V

Delay_ms(500); // 延时 0.5s

GPIO_SetBits(GPIOA, GPIO_Pin_0); // PA0 输出高电平3.3V

Delay_ms(500); // 延时 0.5s

// 第二组:使用 GPIO_WriteBit

GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET); // PA0 = 0

Delay_ms(500);

GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET); // PA0 = 1

Delay_ms(500);

LED 以 0.5 秒亮、0.5 秒灭、再 0.5 秒亮、0.5 秒灭 的方式循环。

相关推荐
LCMICRO-133108477467 分钟前
长芯微LPS6288完全P2P替代TPS61288,是一款具有 15A 开关电流的全集成同步升压转换器
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·同步升压转换器
FreakStudio13 分钟前
MicroPython对接大模型:uopenai + 火山方舟实现文字聊天和图片理解
python·单片机·ai·嵌入式·面向对象·电子diy
一路往蓝-Anbo2 小时前
第四章:STM32 CAN基础收发编程
stm32·单片机·嵌入式硬件
椰羊~王小美2 小时前
嵌入式 和 单片机
java·单片机·嵌入式硬件
悠哉悠哉愿意3 小时前
【物联网学习笔记】TIM
笔记·单片机·嵌入式硬件·物联网·学习
豆包公子3 小时前
AUTOSAR CP故障诊断协议栈DEM(DTC故障管理)裸机实现-实践篇
单片机·嵌入式硬件·车载系统
汽车芯猿5 小时前
嵌入式 SHA-256 完全实现(附原码)(无 uint64_t,减少栈使用)
c语言·单片机
进击的小头5 小时前
第12篇:嵌入式核心外设科普:ADC_DAC模拟前端接口原理与典型应用
单片机·嵌入式硬件
水云桐程序员5 小时前
嵌入式系统开发 需要的环境配置
嵌入式硬件·物联网·硬件工程
CHANG_THE_WORLD6 小时前
PE文件解析器详细文档
stm32·单片机·嵌入式硬件