ynwscfsfi 发表于 2016-10-21 10:59:17

zfz9232 发表于 2016-10-21 08:44
没有试过呢。

你右边不是寄存器吗,自己改啊

zhangdaijin 发表于 2016-10-21 14:22:58

贴个代码看看

Cortexxx 发表于 2016-10-21 15:00:14

你是不是锁上了?

zfz9232 发表于 2016-10-21 20:33:12

ynwscfsfi 发表于 2016-10-20 22:34
手动改也不行吗

刚刚试过了,手动改变MODE后,LED确实是亮起来了。

zfz9232 发表于 2016-10-21 21:30:52

=============bsp_led.c==============
#include "bsp_led.h"

void LED_GPIO_Config(void)
{
    GPIO_InitTypeDef* GPIO_Init_Pin;
    //时钟
    RCC_AHB1PeriphClockCmd(LED_R_CLK,ENABLE);
   
    GPIO_Init_Pin->GPIO_Pin = LED_R_PIN;
    GPIO_Init_Pin->GPIO_Mode = GPIO_Mode_OUT;
    GPIO_Init_Pin->GPIO_Speed = GPIO_Fast_Speed;
    GPIO_Init_Pin->GPIO_OType = GPIO_OType_PP;
    GPIO_Init_Pin->GPIO_PuPd = GPIO_PuPd_UP;

    GPIO_Init(LED_R_PORT,GPIO_Init_Pin);   
}
===============更改为以下的形式=================
=============bsp_led.c==============
#include "bsp_led.h"

void LED_GPIO_Config(void)
{
    GPIO_InitTypeDef GPIO_Init_Pin;
    //时钟
    RCC_AHB1PeriphClockCmd(LED_R_CLK,ENABLE);
   
    GPIO_Init_Pin.GPIO_Pin = LED_R_PIN;
    GPIO_Init_Pin.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_Init_Pin.GPIO_Speed = GPIO_Fast_Speed;
    GPIO_Init_Pin.GPIO_OType = GPIO_OType_PP;
    GPIO_Init_Pin.GPIO_PuPd = GPIO_PuPd_UP;

    GPIO_Init(LED_R_PORT,&GPIO_Init_Pin);   
}

zfz9232 发表于 2016-10-21 21:32:48

如楼上所示,讲结构体声明为实例而不是指针的,就可以得到正确的结构;
如果声明为指针,那么该结构体的每个成员都将会给初始化为0xFF,后果很严重。

asssdz-382474 发表于 2016-10-21 22:04:50

:(:(:(:(:(:(:(:(:(:(

zfz9232 发表于 2016-10-21 22:06:19

该问题的出现是因为指针并没有在使用前初始化,必须要
GPIO_InitTypeDef *GPIO_Init_Pin;
GPIO_InitTypeDef SomeOne;
GPIO_Init_Pin = &SomeOne;
这样子才能用正常使用。

原田夜舞love 发表于 2016-10-21 23:26:38

帮顶了!

中山无雪 发表于 2016-10-21 23:37:49

=============bsp_led.c==============
#include "bsp_led.h"

void LED_GPIO_Config(void)
{
    GPIO_InitTypeDef* GPIO_Init_Pin;
    //时钟
    RCC_AHB1PeriphClockCmd(LED_R_CLK,ENABLE);
   
    GPIO_Init_Pin->GPIO_Pin = LED_R_PIN;
    GPIO_Init_Pin->GPIO_Mode = GPIO_Mode_OUT;
    GPIO_Init_Pin->GPIO_Speed = GPIO_Fast_Speed;
    GPIO_Init_Pin->GPIO_OType = GPIO_OType_PP;
    GPIO_Init_Pin->GPIO_PuPd = GPIO_PuPd_UP;

    GPIO_Init(LED_R_PORT,GPIO_Init_Pin);   
}

定义了指针而没有分配对象,当然就不会起作用了
下面 的直接定义实例,系统自动分配空间,所以运行就正确了

这是C语言 的基本要求
页: 1 [2] 3
查看完整版本: f4-discoveryLED点不亮,的奇葩原因