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,开漏输出模式下,高电平(相当于高阻态)没有驱动能力,低电平有驱动能力

相关文章
stm32学习 3-2 LED流水灯
stm32学习 3-2 LED流水灯
230 4
stm32学习3-1 LED闪烁
stm32学习3-1 LED闪烁
163 4
STM32CubeMX FreeRTOS点亮LED
STM32CubeMX FreeRTOS点亮LED
457 10
STM32CubeMX 按键控制LED
STM32CubeMX 按键控制LED
507 0
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
1680 2
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
1978 0
|
缓存 网络协议 算法
[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)
[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)
|
传感器 编解码 API
【STM32开发入门】温湿度监测系统实战:SPI LCD显示、HAL库应用、GPIO配置、UART中断接收、ADC采集与串口通信全解析
SPI(Serial Peripheral Interface)是一种同步串行通信接口,常用于微控制器与外围设备间的数据传输。SPI LCD是指使用SPI接口与微控制器通信的液晶显示屏。这类LCD通常具有较少的引脚(通常4个:MISO、MOSI、SCK和SS),因此在引脚资源有限的系统中非常有用。通过SPI协议,微控制器可以向LCD发送命令和数据,控制显示内容和模式。
759 2