• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

新人求助,关于寄存器操作点亮LED灯

chunyang 2020-11-13 浏览量:359
#include "stm32f10x.h"
#define  periph_base         (unsigned int)0x40000000
#define  APB2periph_base       periph_base +0x10000
#define  AHPperiph_base                periph_base +0x20000

#define  RCC_base          AHPperiph_base+0x1000
#define  GPIOB_base                     APB2periph_base+0x0C00
#define  RCC_APB2ENR                    *(unsigned int*)(RCC_base+0x18)

#define GPIOB_CRL                            *(unsigned int*)(RCC_base+0x00)
#define GPIOB_CRH                            *(unsigned int*)(RCC_base+0x04)
#define GPIOB_ODR                            *(unsigned int*)(RCC_base+0x0C)

int main()
{
    RCC_APB2ENR |=(1<<3);  //使能时钟
    GPIOB_CRL |=((1)<<(4*5));  //端口配置低寄存器
    GPIOB_ODR  &=~(1<<5);   //配置端口输出寄存器
   
}
void SystemInit(void)
{
   
}
有没有老哥知道,我这个程序为什么点不亮LED0(PB5)


0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 寄存器看起来很费劲,使用标准库先试一下,看看硬件上、初始化上是否有问题。

    另外,你既然操作寄存器进行输出,看看PB5输出电平是否有变化,确保硬件正常。

    • 发布于 2020-11-13
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2
  • 要结合电路图来看,看下那个LED是IO输出高的时候亮还是IO输出低的时候亮
    • 发布于2020-11-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种还要看一下你的原理图,要根据硬件来调试软件,直接看软件是不能确定灯的状态的
    • 发布于2020-11-29
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

新人求助,关于寄存器操作点亮LED灯