(1)查看板子的原理图,板子上的led灯即led2接的是PA5.
(2)建立工程,新建工程的步骤就不说了!请参考我之前的帖子:
STM32F411【Nucleo】第一课--新建工程(基于keil 5.13)
(3)新建两个文件 分别为bsp_led.c bsp_led.h 记得要把C文件加载到工程中,还有头文件路径要加上不然会出现编译出错的!代码如下:
bsp_led.c:
- #include "bsp_led.h"
- void LED_GPIO_Config(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//使能LED灯IO时钟
- GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5; //选定引脚
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT; //设置为普通输出
- GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz; //输出频率为100MHz
- GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP; //设置为上拉
- GPIO_Init(GPIOA,&GPIO_InitStructure);
- }
复制代码 bsp_led.h
- #ifndef _BSP_LED_H_
- #define _BSP_LED_H_
- #include "stm32f4xx.h"
- /******************************
- 板载led采用控制led阳极
- *******************************/
- #define ON 1
- #define OFF 0
-
- #define LED(a) if(a) \
- GPIO_SetBits(GPIOA,GPIO_Pin_5);\
- else \
- GPIO_ResetBits(GPIOA,GPIO_Pin_5)
-
- void LED_GPIO_Config(void);
- #endif
复制代码
(4)修改main.c 代码如下:
- #include "stm32f4xx.h"
- #include "bsp_led.h"
- /**************粗略延时**************/
- void Delay(__IO uint32_t nCount)
- {
- while(nCount--){}
- }
- int main(void)
- {
- LED_GPIO_Config();//初始化LED灯IO口--PA5
- while (1)
- {
- LED(ON);
- Delay(0x7FFFFF);
- LED(OFF);
- Delay(0x7FFFFF);
- }
- }
- /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
复制代码
下载到板子之后就能看到led灯一闪一闪的跑着了
还有系统时钟的话,我们可以不用配置,因为启动文件已经把系统时钟默认配置为100MHz了
- Reset_Handler PROC
- EXPORT Reset_Handler [WEAK]
- IMPORT SystemInit
- IMPORT __main
- LDR R0, =SystemInit
- BLX R0
- LDR R0, =__main
- BX R0
- ENDP
复制代码- #if defined (STM32F411xE)
- uint32_t SystemCoreClock = 100000000;
- #endif /* STM32F401xx */
复制代码 附上代码源文件和原理图
2.LEDç¯æµè¯.zip
(8.54 MB, 下载次数: 762)
|
啥?
对不起,网络不好!