高中生
最后登录1970-1-1
在线时间 小时
注册时间2015-10-3
|
本帖最后由 wanyisq 于 2015-10-3 22:08 编辑
在按照STM32库开发实战指南这本书对手上的开发板进行点亮LED操作发现,4颗LED只有最后一颗亮。贴出代码和原理图,谁能帮我看看四颗LED分别接在PD8、PD9、PD10、PD11 。运行程序后只有PD11亮。
led.h文件
- #ifndef __LED_H
- #define __LED_H
- #include "stm32f10x.h"
- #define ON 0
- #define OFF 1
- #define LED1(a) if(a) \
- GPIO_ResetBits(GPIOD,GPIO_Pin_8);\
- else \
- GPIO_SetBits(GPIOD,GPIO_Pin_8)
- #define LED2(a) if(a) \
- GPIO_ResetBits(GPIOD,GPIO_Pin_9);\
- else \
- GPIO_SetBits(GPIOD,GPIO_Pin_9)
- #define LED3(a) if(a) \
- GPIO_ResetBits(GPIOD,GPIO_Pin_10);\
- else \
- GPIO_SetBits(GPIOD,GPIO_Pin_10)
- #define LED4(a) if(a) \
- GPIO_ResetBits(GPIOD,GPIO_Pin_11);\
- else \
- GPIO_SetBits(GPIOD,GPIO_Pin_11)
-
- void LED_GPIO_Config(void);
- #endif
复制代码
led.c
- #include "led.h"
- void LED_GPIO_Config(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
-
- RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD,ENABLE);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 ;
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 ;
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 ;
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 ;
-
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
-
- GPIO_Init(GPIOD, &GPIO_InitStructure);
-
- GPIO_SetBits(GPIOD,GPIO_Pin_8);
- GPIO_SetBits(GPIOD,GPIO_Pin_9);
- GPIO_SetBits(GPIOD,GPIO_Pin_10);
- GPIO_SetBits(GPIOD,GPIO_Pin_11);
- }
复制代码
main.c
- #include "stm32f10x.h"
- #include "led.h"
- void Delay(__IO u32 nCount);
- int main(void)
- {
- LED_GPIO_Config();
-
- while(1)
- {
- Delay(0x0fffef);
- LED1(ON);
- Delay(0x0fffef);
- LED2(ON);
- Delay(0x0fffef);
- LED3(ON);
- Delay(0x0fffef);
-
- LED4(ON);
- Delay(0x0fffef);
-
- }
- }
- void Delay(__IO u32 nCount)
- {
- for(; nCount !=0; nCount-- );
- }
复制代码
|
-
|