最近比较忙没来论坛,今天更新下,先点亮一个LED吧。
安装KEIL5和相关驱动的过程就不赘述了,直接上代码和相关注意事项,延时先用土办法代替,下次更新用systick延时
1、注意事项:
a、开发板上LED灯接在PA5端口
b、任何外设需要开启相应的时钟才能正常工作
c、需要加入的头文件有
#include "stm32f4xx.h"
#include "led.h"
#include"stm32f4xx_gpio.h"
#include" stm32f4xx_rcc.h"
2、代码实例
------------------------------------------------------------------------------------------------------------------------------------------------
main.c文件
#include "stm32f4xx.h"
#include "led.h"
void delay();
int main()
{
led_init();
while(1)
{
led(LED_ON);
delay();
led(LED_OFF);
delay();
}
}
void delay()
{
u32 a,b;
for(a=9999;a>0;a--)
for(b=999;b>0;b--);
}
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
led.c文件
#include "led.h"
void led_init()
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_DOWN;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);
led(LED_OFF);
}
void led(u8 ledstatus)
{
if(ledstatus)
GPIO_SetBits(GPIOA,GPIO_Pin_5);
else
GPIO_ResetBits(GPIOA,GPIO_Pin_5);
}
---------------------------------------------------------------------------------------------------------------------------------------------------
led.h文件
#ifndef _LED_H
#define _LED_H
#include"stm32f4xx.h"
#define LED_ON 1
#define LED_OFF 0
void led_init(void);
void led(u8 ledstatus);
#endif /*_LED_H*/
---------------------------------------------------------------------------------------------------------------------------------------------------------------
|