STM32 NUCLEO F401RE无法写入GPIO BSRR中的某些位

时间:2017-03-03 23:23:09

标签: c arm embedded stm32

我最近买了一个STM-NUCLEO,我正在尝试写入连接到LED的PA0,PA1,PA2,PA3。连接到PA0和PA1的LED按预期亮起,但PA2和PA3不亮。我用PA4尝试了它,这也有效。这是代码:

int main(void)
{

  /* Configure the System clock to 84 MHz */
  SystemClock_Config();

  RCC->AHB1RSTR |= RCC_AHB1RSTR_GPIOARST; // resetting GPIOA
    RCC->AHB1RSTR = 0; //exiting reset state
    RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; //enabeling GPIOA clock
    GPIOA->MODER |= GPIO_MODER_MODER0_0;
    GPIOA->MODER |= GPIO_MODER_MODER1_0;
    GPIOA->MODER |= GPIO_MODER_MODER2_0;
    GPIOA->MODER |= GPIO_MODER_MODER3_0;
    //setting the pins
    GPIOA->BSRR |= (1<<0);
    GPIOA->BSRR |= (1<<1);
    GPIOA->BSRR |= (1<<2);
    GPIOA->BSRR |= (1<<3);
  /* Add your application code here*/

  /* Infinite loop */
  while (1)
  { 

  }
}

1 个答案:

答案 0 :(得分:4)

根据Nucleo schematics,PA2&amp; PA3连接到内部ST-Link控制器,因此不能在不添加和删除某些网桥的情况下用于GPIO。

那是你的MCU,&#34; SB62,SB63默认打开&#34;表示连接不存在。

enter image description here

这就是它连接到ST-Link接口的地方。

enter image description here