zoukankan      html  css  js  c++  java
  • 小结-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;

  • 相关阅读:
    09.回文数
    08.字符串转换位整数
    背景图片自适应
    认证 (authentication) 和授权 (authorization) 的区别
    vue-组件之间传值
    数组对象去重
    二进制数转换十进制数
    node-删除对象中指定属性失效问题-JSON.parse实例化
    Vue-动态修改数组
    正则遇到的问题集合
  • 原文地址:https://www.cnblogs.com/zhaocundang/p/5325362.html
Copyright © 2011-2022 走看看