zoukankan      html  css  js  c++  java
  • 嵌入式stm32 LED 流水灯剖析(库函数版)

    基于stm32 F401 discovery 库函数点亮LED 3,4,5,6

    一.附原理图一张:

    分别对应的GPIO为PD12,PD13,PD14,PD15

    二.Memory and bus architecture 

    #define PERIPH_BASE          ((uint32_t)0x40000000) /*!< Peripheral base address in the aliasregion 

    #define APB1PERIPH_BASE      PERIPH_BASE

    #define APB2PERIPH_BASE      (PERIPH_BASE + 0x00010000)

    #define AHB1PERIPH_BASE      (PERIPH_BASE + 0x00020000)

    #define AHB2PERIPH_BASE      (PERIPH_BASE + 0x10000000)

    GPIOD在AHB1中,通过

    #define GPIOD_BASE            (AHB1PERIPH_BASE + 0x0C00)

    三.关键代码附上:

    [cpp] view plain copy
     
    1. /* Private functions ---------------------------------------------------------*/  
    2.   
    3. /** 
    4.   * @brief  Main program 
    5.   * @param  None 
    6.   * @retval None 
    7.   */  
    8. int main(void)  
    9. {  
    10.   /*!< At this stage the microcontroller clock setting is already configured,  
    11.        this is done through SystemInit() function which is called from startup 
    12.        file (startup_stm32f401xx.s) before to branch to application main. 
    13.        To reconfigure the default setting of SystemInit() function, refer to 
    14.         system_stm32f4xx.c file 
    15.      */  
    16.   GPIO_InitTypeDef  GPIO_InitStructure;  
    17.   
    18.   /* GPIOD Periph clock enable */  
    19.   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);  
    20.   
    21.   /* Configure PD12, PD13, PD14 and PD15 in output pushpull mode */  
    22.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15;  
    23.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;  
    24.   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;  
    25.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;  
    26.   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;  
    27.   GPIO_Init(GPIOD, &GPIO_InitStructure);  
    28.   
    29.   while (1)  
    30.   {  
    31.     /* PD12 to be toggled */  
    32.     GPIO_SetBits(GPIOD, GPIO_Pin_12);  
    33.       
    34.     /* Insert delay */  
    35.     Delay(0x3FFFFF);  
    36.       
    37.     /* PD13 to be toggled */  
    38.     GPIO_SetBits(GPIOD, GPIO_Pin_13);  
    39.       
    40.     /* Insert delay */  
    41.     Delay(0x3FFFFF);  
    42.     
    43.     /* PD14 to be toggled */  
    44.     GPIO_SetBits(GPIOD, GPIO_Pin_14);  
    45.       
    46.     /* Insert delay */  
    47.     Delay(0x3FFFFF);  
    48.       
    49.     /* PD15 to be toggled */  
    50.     GPIO_SetBits(GPIOD, GPIO_Pin_15);  
    51.       
    52.     /* Insert delay */  
    53.     Delay(0x7FFFFF);  
    54.       
    55.     GPIO_ResetBits(GPIOD, GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);  
    56.       
    57.     /* Insert delay */  
    58.     Delay(0xFFFFFF);  
    59.   }  
    60. }  

    代码工程资源链接:

    http://download.csdn.net/detail/xiaoxiaopengbo/9418874

    创客学院视频连接:www.makeru.com.cn

    嵌入式学习交流群:561213221

  • 相关阅读:
    使用Spring Boot来加速Java web项目的开发
    Spring IOC的理解
    CentOS查看系统信息-CentOS查看命令
    mybatis传递Map和List集合示例
    java文件读写工具类
    MongoDB数据库操作
    linux中给PHP安装mongodb的扩展
    深度学习与计算机视觉系列(2)_图像分类与KNN
    深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器
    深度学习与计算机视觉系列(6)_神经网络结构与神经元激励函数
  • 原文地址:https://www.cnblogs.com/huan-huan/p/8398634.html
Copyright © 2011-2022 走看看