stm32使用固件库点亮LED灯

1. 项目:使用stm32f10x点亮LED灯,并实现流水灯效果。

2. 代码:

  main.c

#include "stm32f10x.h"
#include "bsp_led.h"

/*延时函数*/
void Delay(uint32_t count)
{
	for(;count!= 0; count--);
}

int main(void)
{		
	LED_GPIO_Config();
	while(1)
	{
//		//方法1
//		GPIO_SetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN);	//关灯
//		Delay(0xfffff);
//		GPIO_ResetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN);	/*开灯*/
//		Delay(0xfffff);
		
		//方法2
		LED_G(OFF);	//关灯
		Delay(0xffffff);
		LED_G(ON);		/*开灯*/
		Delay(0xffffff);
	}

}

  bsp_led.c

  

#include "bsp_led.h"

void LED_GPIO_Config(void)
{
	GPIO_InitTypeDef	GPIO_InitStruct;
	
	RCC_APB2PeriphClockCmd(LED_G_GPIO_CLK, ENABLE);
	
	GPIO_InitStruct.GPIO_Pin = LED_G_GPIO_PIN;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
	
	GPIO_Init(LED_G_GPIO_PORT, &GPIO_InitStruct);
}

  

  bsp_led.h

  

#ifndef __bsp_led_h
#define __bsp_led_h

#include "stm32f10x.h"
//方法1
#define LED_G_GPIO_PIN			GPIO_Pin_0
#define LED_G_GPIO_PORT			GPIOB
#define LED_G_GPIO_CLK			RCC_APB2Periph_GPIOB

//方法2
#define ON	1
#define OFF 0
#define LED_G(a)	if(a)	GPIO_SetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN);	\
									else GPIO_ResetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN);


void LED_GPIO_Config(void);

#endif /*__bsp_led_h*/

  

 

 

 

posted @ 2022-01-21 20:07  JRS077  阅读(531)  评论(0编辑  收藏  举报