STM32:GPIO控制LED闪烁代码部分(内含配置图+代码+代码注释)

简介: STM32:GPIO控制LED闪烁代码部分(内含配置图+代码+代码注释)

配置结果如下:(以后程序就不再放配置过程了,希望大家一定要熟练)


30315b4265354fd4892bac3ed1e422ff.png

User配置:


1c8cc387962a4b759076bd762d8d1d69.png


Start配置:


069677222bce417699701bed1fc1f03b.png


Library配置:


351f72d54f77404b9fa80eb7e71f1a8e.png


延时函数配置:


63d925a2061048b48be6fcb3b7c3e0f2.png

3b45f3a21115462c953767bc02b0d83e.png


代码部分:


main代码部分:


#include "stm32f10x.h"                  // Device header
#include "delay.h"
int main(void)
{
    //GPIO三步骤:(RCC+GPIO两个外设)---右键跳转定义.h文件,然后拉到最后
        //1.RCC开启GPIO时钟
        //2.GPIO_Init初始化GPIO,
        //3.使用输出,输入控制GPIO口
    //1.RCC初始化函数
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
    //2.GPIO_Init初始化GPIO
    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
//GPIO_Mode_AIN是模拟输入
//GPIO_Mode_IN_FL是浮空输入
//GPIO_Mode_IPD 下拉输入
//GPIO_Mode_IPU 上拉输入
//GPIO_Mode_Out_O开漏输出
//GPIO_Mode_Out_P推挽输出
//GPIO_Mode_AF_OD复用开漏
//GPIO_Mode_AF_PP复用推挽
    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;
    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOA,&GPIO_InitStruct);
    while(1)
    {
        //3.GPIO控制LED闪烁
        //LED闪烁模式1:
        GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);//点亮
        Delay_ms(500);//控制延时时间可改变闪烁间隙
        GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);//熄灭
        Delay_ms(500);
        //LED闪烁模式2:
        GPIO_ResetBits(GPIOA,GPIO_Pin_0);//把指定端口设定为低电平---点亮LED
        Delay_ms(500);
        GPIO_SetBits(GPIOA,GPIO_Pin_0);//把指定端口设定为高电平---熄灭LED
        Delay_ms(500);
        //LED闪烁模式3:枚举类型
        GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)0);//通过第三个参数的值来指定端口
        //把1和0的类型强制转化为枚举类型
        Delay_ms(500);
        GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)1);
        Delay_ms(500);
    }
}

注:

       //GPIO_Mode_Out_PP,推挽输出下,高低电平都有驱动
       //GPIO_Mode_Out_OD,开漏输出模式下,高电平(相当于高阻态)没有驱动能力,低电平有驱动能力

相关文章
|
1月前
stm32学习 3-2 LED流水灯
stm32学习 3-2 LED流水灯
69 4
|
1月前
stm32学习3-1 LED闪烁
stm32学习3-1 LED闪烁
34 4
|
4月前
STM32CubeMX FreeRTOS点亮LED
STM32CubeMX FreeRTOS点亮LED
77 10
|
4月前
STM32CubeMX 按键控制LED
STM32CubeMX 按键控制LED
69 0
|
5月前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
423 2
|
4月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
683 0
|
6月前
|
传感器
STM32标准库ADC和DMA知识点总结-1
STM32标准库ADC和DMA知识点总结
|
5月前
|
IDE 开发工具
使用STM32F103标准库实现自定义键盘
通过本文,我们学习了如何使用STM32F103标准库实现一个简单的自定义键盘。我们首先初始化了GPIO引脚,然后实现了一个扫描函数来检测按键状态。这个项目不仅能够帮助我们理解STM32的GPIO配置和按键扫描原理,还可以作为进一步学习中断处理和低功耗设计的基础。希望本文对你有所帮助,祝你在嵌入式开发的道路上不断进步!
502 4
|
5月前
|
传感器
【经典案例】STM32F407使用HAL库配置I2C详解
STM32F407是一个强大的微控制器,广泛应用于嵌入式系统中。在许多应用中,我们需要使用I2C总线来与传感器、EEPROM、显示屏等外设进行通信。本文将详细介绍如何使用STM32 HAL库来配置和使用I2C接口。
669 2