找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3969|回复: 7
打印 上一主题 下一主题
收起左侧

stm32点亮led不亮,求分析程序

[复制链接]
跳转到指定楼层
楼主
#define PERIPH_BASE      ((unsigned int)0x40000000)//
        
#define APB2PERIPH_BASE  (PERIPH_BASE + 0x00010000)

#define GPIOE_BASE       (APB2PERIPH_BASE + 0x0C00)

#define GPIOE_CRL                   *(unsigned int*)(GPIOE_BASE+0x00)
#define GPIOE_CRH                   *(unsigned int*)(GPIOE_BASE+0x04)
#define GPIOE_IDR                   *(unsigned int*)(GPIOE_BASE+0x08)
#define GPIOE_ODR                   *(unsigned int*)(GPIOE_BASE+0x0C)
#define GPIOE_BSRR          *(unsigned int*)(GPIOE_BASE+0x10)
#define GPIOE_BRR                   *(unsigned int*)(GPIOE_BASE+0x14)
#define GPIOE_LCKR                   *(unsigned int*)(GPIOE_BASE+0x18)

#define AHBPERIPH_BASE   (PERIPH_BASE + 0x20000)

#define RCC_BASE                  (AHBPERIPH_BASE + 0x1000)
#define RCC_APB2ENR          *(unsigned int*)(RCC_BASE+0x18)




#include "stm32f10x.h"
typedef unsigned int u32;

void SystemInit()
{
        
}

void delay(u32 i)
{
  while(i--);
}

int main()
{
        
         RCC_APB2ENR|=1<<6;
         GPIOE_CRL&=~(0x0f<<(4*5));
         GPIOE_CRL|=(0x03<<(4*5));
         GPIOE_BSRR=(0x01<<(16+5));
         while(1)
          {
                          GPIOE_BSRR=(0x01<<(16+5));
                          delay(0xffff);
                          GPIOE_BSRR=(0x01<<(5));
                          delay(0xffff);
          }
}



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:752974 发表于 2021-1-9 16:06 | 只看该作者
按着你的原理图,PE5输出口拉低电平,LED1才能亮。看看你的程序,只有置位操作。对于STM32F1xx,使用固件库和位带较方便简单。
回复

使用道具 举报

板凳
ID:833125 发表于 2021-1-9 16:17 | 只看该作者
munuc_w 发表于 2021-1-9 16:06
按着你的原理图,PE5输出口拉低电平,LED1才能亮。看看你的程序,只有置位操作。对于STM32F1xx,使用固件库 ...

GPIOE_CRL置位,GPIOE_BSRR拉低电平
回复

使用道具 举报

地板
ID:752974 发表于 2021-1-9 16:45 | 只看该作者
看看主循环。
回复

使用道具 举报

5#
ID:752974 发表于 2021-1-9 16:48 | 只看该作者
写BSRR是置位,写BRR是复位。
回复

使用道具 举报

6#
ID:255945 发表于 2021-1-10 11:50 | 只看该作者
要STM32的IO口的输出模式,如开漏模式等
回复

使用道具 举报

7#
ID:833125 发表于 2021-1-11 08:49 | 只看该作者
哈哈222 发表于 2021-1-10 11:50
要STM32的IO口的输出模式,如开漏模式等

GPIOE_CRL&=~(0x0f<<(4*5));
         GPIOE_CRL|=(0x03<<(4*5));
设置的通用推挽,输出最大速度50MHz
回复

使用道具 举报

8#
ID:833125 发表于 2021-1-11 15:04 | 只看该作者
munuc_w 发表于 2021-1-9 16:06
按着你的原理图,PE5输出口拉低电平,LED1才能亮。看看你的程序,只有置位操作。对于STM32F1xx,使用固件库 ...

固件库确实简单些
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表