标题: stm32点亮led不亮,求分析程序 [打印本页]

作者: baifajushi    时间: 2021-1-9 10:21
标题: 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);
          }
}




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

GPIOE_CRL置位,GPIOE_BSRR拉低电平
作者: munuc_w    时间: 2021-1-9 16:45
看看主循环。
作者: munuc_w    时间: 2021-1-9 16:48
写BSRR是置位,写BRR是复位。
作者: 哈哈222    时间: 2021-1-10 11:50
要STM32的IO口的输出模式,如开漏模式等
作者: baifajushi    时间: 2021-1-11 08:49
哈哈222 发表于 2021-1-10 11:50
要STM32的IO口的输出模式,如开漏模式等

GPIOE_CRL&=~(0x0f<<(4*5));
         GPIOE_CRL|=(0x03<<(4*5));
设置的通用推挽,输出最大速度50MHz
作者: baifajushi    时间: 2021-1-11 15:04
munuc_w 发表于 2021-1-9 16:06
按着你的原理图,PE5输出口拉低电平,LED1才能亮。看看你的程序,只有置位操作。对于STM32F1xx,使用固件库 ...

固件库确实简单些




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1