你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

f4-discoveryLED点不亮,的奇葩原因

[复制链接]
zfz9232 提问时间:2016-10-20 20:52 /
阅读主题, 点击返回1楼
收藏 1 评论23 发布时间:2016-10-20 20:52
23个回答
ynwscfsfi 回答时间:2016-10-21 10:59:17

你右边不是寄存器吗,自己改啊
zhangdaijin 回答时间:2016-10-21 14:22:58
贴个代码看看
Cortexxx 回答时间:2016-10-21 15:00:14
你是不是锁上了?
zfz9232 回答时间:2016-10-21 20:33:12

刚刚试过了,手动改变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;
这样子才能用正常使用。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

原田夜舞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语言 的基本要求

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版