首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STM32F401RE核心板,无法切换用户指示灯

STM32F401RE核心板,无法切换用户指示灯
EN

Stack Overflow用户
提问于 2018-07-07 13:52:46
回答 3查看 428关注 0票数 1

我试图弄清楚如何切换Nucleo板上的LED,但我就是看不到用户的LED切换。从网上看,这似乎就是你所要做的。还有人遇到过这个问题吗?

代码语言:javascript
复制
#include "stm32f4xx.h"
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"

int main(void)
{
    int counter = 0;
    SystemInit();

    GPIO_InitTypeDef temp;
    temp.GPIO_Mode = GPIO_Mode_OUT;
    temp.GPIO_OType = GPIO_OType_PP;    // Push Pull
    temp.GPIO_Pin = GPIO_Pin_5;
    temp.GPIO_Speed = GPIO_Low_Speed;
    temp.GPIO_PuPd = GPIO_PuPd_NOPULL;

    RCC_APB2PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

    GPIO_Init( GPIOA, &temp );

    while( 1 )
    {
        if ( counter++ > 10000 )
        {
            GPIO_ToggleBits( GPIOA, GPIO_Pin_5 );
            counter = 0;
        }
    }
}
EN

回答 3

Stack Overflow用户

发布于 2018-07-07 14:03:03

你必须要写

代码语言:javascript
复制
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

以便启用GPIOA。

票数 5
EN

Stack Overflow用户

发布于 2018-07-07 14:09:54

您不能使用AHB2时钟控件启用AHB1外设时钟。

代码语言:javascript
复制
RCC_APB2PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
    ^^^^                   ^^^

“我就是看不到用户发光二极管开关。”

即使您正确地启用了GPIO时钟,您切换输出的速度也非常快(MHz顺序),并且counter没有明显的作用。如果你的目标是一个闪烁的LED,那是行不通的;你只会看到一个亮度略低于全亮度的LED --你需要在每个切换之间有一个延迟。

票数 3
EN

Stack Overflow用户

发布于 2018-07-07 14:48:20

Clifford是绝对正确的,LED正在“切换”到快速的方式。STM32F401RE应该是以168 The的频率运行。将您的计数器值从10.000更改为例如50.000.000,以查看LED以适当的速率切换。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51220353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档