点亮stm32上的led灯

发布时间 2023-04-11 17:02:20作者: 风止何安,璃月

led.h

#ifndef __LED_H 
#define __LED_H

#include "stm32f10x.h"

void LED_Init(void); //????
#define LED1 GPIO_Pin_0
#endif     //宏定义,免去重复定义;

led.c

#include "led.h"
void LED_Init(void)
{
//声明一个结构体
GPIO_InitTypeDef GPIO_InitStruct;

//开启外设始终 GPIOB h和 GPIOE
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);

//结构体成员变量的初始化
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;    //选择端口号
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;  //选择IO工作模式,(推挽输出模式)
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;   //设置端口输出速度(只有2/10/50)

//选择设置的io端口号
GPIO_Init(GPIOB, &GPIO_InitStruct);

}

main.c

#include "stm32f10x.h"
#include "led.h"

 

void Delay( uint32_t count)
{
for(;count!=0;count--);
}

int main()
{
LED_Init();  //led灯初始化
while(1)
{
GPIO_WriteBit(GPIOB,LED1,(BitAction)(0));
Delay(5);
GPIO_WriteBit(GPIOB,LED1,(BitAction)(1));
Delay(5);
}
}