• 小结-stm32 驱动LED灯


    使用位带操作位带操作就是把每个比特膨胀成一个32位的字,当访问这些字的时候就访问这些比特位。

     http://www.cnblogs.com/xiaobo-Linux/

    然后,端口使能:

    //³õʼ»¯PB5ºÍPE5ΪÊä³ö¿Ú.²¢Ê¹ÄÜÕâÁ½¸ö¿ÚµÄʱÖÓ            
    //LED IO³õʼ»¯
    void LED_Init(void)
    {
     
     GPIO_InitTypeDef  GPIO_InitStructure;
         
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, 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;                 //LED1-->PE.5 ¶Ë¿ÚÅäÖÃ, ÍÆÍìÊä³ö
     GPIO_Init(GPIOE, &GPIO_InitStructure);                       //ÍÆÍìÊä³ö £¬IO¿ÚËÙ¶ÈΪ50MHz
     GPIO_SetBits(GPIOE,GPIO_Pin_5);                          //PE.5 Êä³ö¸ß 
    }
     


    GPIO_SetBits(GPIOB,GPIO_Pin_5);

    这个必须要写,取地址。

    GPIO_SetBits(GPIOB,GPIO_Pin_5);这个可以不写,主要是开机不让LED亮;

    SetBits 是 高电平 1 ;

    RestBits是低电平 0 ;

    然后是位带操作:

    #ifndef __LED_H
    #define __LED_H     
    #include "sys.h"
    
    #define LED0 PBout(5)// PB5
    #define LED1 PEout(5)// PE5    
    
    
    
    void LED_Init(void);
    
                                 
    #endif

    #ifndef __LED_H

    #define __LED_H

    ..

    ..

    #endif

    是防止重复加载头文件

    #define LED0 PBout(5)  out是输出 Int是输入

    输出PB.5引脚

    在main.c中直接就可以像c51那样写 LED0 =1;LED0=0;

  • 相关阅读:
    JasperReport笔记
    关于iReport5.6.0无法正常启动或者闪退或者JDK8不兼容的解决方案
    sublime text3 3176激活
    直播技术之编码和封装
    直播技术之推流和传输
    Quic协议剖析
    Glide Picasso和Fresco的对比
    MVP架构学习
    反向打印链表
    重建二叉树
  • 原文地址:https://www.cnblogs.com/zhaocundang/p/5325362.html
Copyright © 2020-2023  润新知