美文网首页
STM32点亮小灯的程序和方法

STM32点亮小灯的程序和方法

作者: 等一个人咖啡_2c04 | 来源:发表于2020-03-02 20:51 被阅读0次

    STM32点亮小灯(库函数版)

    首先解释以下

    #ifndef _LED_H

    #ifndef _LED_H

    ......

    ......

    #endif

    避免重复引用头文件的内容。  一般放在头文件里面,作用就是以防你在.c文件里面不小心重复包含头文件的时候不会报错

    搞起来,搞起来。玩32其实点个灯是很难的,不像51,arduino等单片机

    首先定义led库

    /******声明led库,防止在主函数中被重复调用*****/

    #ifndef __LED_H

    #define __LED_H

    void   LED_Init(void);

    #endif

    定义led.c文件

    #include "led.h"

    #include "stm32f10x.h"   //一定要采用这个库,才能调用引脚的初始化

    //初始化PB5和PE5为输出口.并使能这两个口的时钟    

    //LED IO初始化

    void LED_Init(void)

    {

    GPIO_InitTypeDef  GPIO_InitStructure;  //定义结构体指针。具体百度

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA, ENABLE); //使能PB,PE端口时钟

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 端口配置

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz

    GPIO_Init(GPIOB, &GPIO_InitStructure); //根据设定参数初始化GPIOB.5

    GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5 输出高

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 端口配置

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz

    GPIO_Init(GPIOE, &GPIO_InitStructure); //根据设定参数初始化GPIOB.5

    GPIO_SetBits(GPIOE,GPIO_Pin_5); //PE.5 输出高

    }

    /*****主函数中***/

    #include "stm32f10x.h"   //一定要采用这个库,才能调用引脚的初始化

    #include "delay.h"

    #include "led.h"

    int main(void)

    {

    delay_init();   //初始化延时函数

    LED_Init();         //初始化LED端口

    while(1)

    {

    GPIO_ResetBits(GPIOB,GPIO_Pin_5);  //LED0对应引脚GPIOB.5拉低,亮  等同LED0=0;

    GPIO_SetBits(GPIOA,GPIO_Pin_5);  //LED1对应引脚GPIOE.5拉高,灭 等同LED1=1;

    delay_ms(300);    //延时300ms

    GPIO_SetBits(GPIOB,GPIO_Pin_5);   //LED0对应引脚GPIOB.5拉高,灭  等同LED0=1;

    GPIO_ResetBits(GPIOA,GPIO_Pin_5); //LED1对应引脚GPIOE.5拉低,亮 等同LED1=0;

    delay_ms(300);                    //延时300ms

    }

    }

    解释

    /****低电平输出模式***/

    GPIO_ResetBits(GPIOB,GPIO_Pin_5);  //LED0对应引脚GPIOB.5拉低,亮  等同LED0=0;

    /****高电平输出模式***/

    GPIO_SetBits(GPIOA,GPIO_Pin_5);  //LED1对应引脚GPIOE.5拉高,灭 等同LED1=1;

    相关文章

      网友评论

          本文标题:STM32点亮小灯的程序和方法

          本文链接:https://www.haomeiwen.com/subject/gdchkhtx.html