分享

STM32F4点亮LED操作代码(寄存器版)

 昵称88dO7 2018-03-27

#include"stdint.h"
#include"stm32f4xx.h"

int main(void){
int32_t  i ;
/* Setup the microcontroller system. Initialize the Embedded Flash Interface,
     initialize the PLL and update the SystemFrequency variable. */
 SystemInit();//IN FILE system_stm32f10x.c,FOR clock setup etc
 
 RCC->AHB1ENR=0x00701019; //初始化使能时钟
 
 GPIOA->MODER  = 0x6aa99559;  //对A组IO口进行模式选择,输出模式,参考MODER寄存器
 GPIOA->OTYPER = 0x00000000;  //对A组IO口进行类型选择,推完输出,参考OTYPER寄存器
 GPIOA->OSPEEDR = 0x15444000; //对A组IO口进行速度选择,参考OSPEEDR寄存器
 GPIOA->PUPDR = 0x25500000;   //对A组IO口进行上拉、下拉选择,参考PUPDR寄存器
 GPIOA->AFR[0] = 0xb00000b0;  //对A组IO口进行模式选择
 GPIOA->AFR[1] = 0x00099770 ; //对A组IO口进行模式选择
//对E组IO口进行初始化,同A
 GPIOE->MODER=0x00001554;
 GPIOE->OTYPER=0x00000000;
 GPIOE->OSPEEDR=0x00002AA8;
 GPIOE->PUPDR=0x00002AA8;
//对D组IO口进行初始化,同A
 GPIOD->MODER=0X00400000;
 GPIOD->OTYPER=0x00000000;
 GPIOD->OSPEEDR=0x00800000;
 GPIOD->PUPDR=0x00800000;
 
//设置程序死循环
 for(;;)
 {
   //点亮相应LED
   for(i =0;i<5000;i++)
   {
     GPIOE->BSRR=0x0000007E;
     GPIOD->BSRR=0x00000800;
     GPIOA->BSRR=0x0000000C;
    }
   
//熄灭相应LED
   for(i =0;i<5000;i++)
   {
    GPIOE->BSRR=0x007E0000;
    GPIOD->BSRR=0x08000000;
    GPIOA->BSRR=0x000C0000;
    }
  }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多