打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

#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;
    }
  }
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
明解STM32—GPIO理论基础知识篇之寄存器原理
STM32中断嵌套及外部中断全程攻略
使用BSRR和BRR寄存器直接操作STM32的I/O端口
stm32标准库对寄存器地址的封装
STM32 FSMC LCD 液晶的驱动—ILI9320
STM8的中断系统以及外部中断详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服