完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
板子:STM32F4-DISCOVERY
LED部分原理图: 函数调用: ============main.c=============== #include "stm32f4xx.h" #include "bsp_led.h" int main(void) { LED_GPIO_Config(); //GPIO_ResetBits(LED_R_PORT,LED_R_PIN); GPIO_SetBits(LED_R_PORT,LED_R_PIN); while(1) { }; } ============bsp_led.h=============== #ifndef __BSP_LED_H__ #define __BSP_LED_H__ //#include "stm32f4xx.h" #include "stm32f4xx_gpio.h" #include "stm32f4xx_rcc.h" #define LED_R_PIN GPIO_Pin_13 #define LED_R_PORT GPIOG #define LED_R_CLK RCC_AHB1Periph_GPIOG void LED_GPIO_Config(void); #endif =============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); } 运行keil没编译出错的提示,但是烧到板子就是点不亮PG13对应的LED灯。 |
|
相关推荐
23个回答
|
|
|
|
|
|
先用万用表响档量一下
|
|
|
|
|
|
|
|
手动改也不行吗
|
|
|
|
你的系统时钟起来了嘛?
|
|
|
|
|
|
|
|
|
|
|
|
刚刚入门,还没接触到这个的介绍。。。 |
|
|
|
楼主把工程传上来看看
|
|
|
|
|
|
|
|
贴个代码看看
|
|
|
|
你是不是锁上了?
|
|
|
|
|
|
|
|
=============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); } |
|
|
|
|
|
|
|
|
|
该问题的出现是因为指针并没有在使用前初始化,必须要
GPIO_InitTypeDef *GPIO_Init_Pin; GPIO_InitTypeDef SomeOne; GPIO_Init_Pin = &SomeOne; 这样子才能用正常使用。 |
|
|
|
帮顶了!
|
|
|
|
=============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语言 的基本要求 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1967 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1823 浏览 3 评论
4403 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1970 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2477 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 22:59 , Processed in 1.072182 second(s), Total 108, Slave 91 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号