Poi*_*ter 2 c microcontroller stm32
有谁知道为什么代码不起作用?
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
GPIOB->MODER &= ~(0x3u << 6u);
GPIOB->MODER |= (0x1u << 6u);
for (int i = 0; i < 1000; i++) {
GPIOB->ODR |= (0x1u << 0x3u);
}
Run Code Online (Sandbox Code Playgroud)
我使用的是 STM 板 (STM32L432KC),它有一个集成 LED,称为 PB3 引脚(端口 26),但在闪烁后没有任何反应。实际上应该有一个发光二极管。我是否使用了正确的寄存器?
您在 中设置了一点ODR但从未清除它,因此它不会闪烁,您需要在开/关转换之间延迟才能明显看到它在闪烁。
在可能的情况下写入BSRR寄存器而不是写入寄存器是一种很好的做法ODR,这样可以避免读取-修改-写入循环。
如果该代码是您的全部,main()那么您可能想for (int i = 0; i < 1000; i++)用 a替换 the while(1),您通常不想从main嵌入式上下文中返回。