[野火]STM32-用固件库点亮LED

本文介绍了如何在STM32F10x单片机平台上,使用C语言编写代码来配置GPIO控制LED灯,并实现简单的延时功能。通过LED_GPIO_Config()函数设置GPIO口和引脚,以及GPIO_SetBits和GPIO_ResetBits操作来控制LED的开关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mian.c

#include "stm32f10x.h"   // 相当于51单片机中的  #include <reg51.h>
#include "bsp_led.h"

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


int main(void)
{
	
	LED_GPIO_Config(); //配置函数
	GPIO_SetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN); //设置选定的数据端口位。 就是置1
	GPIO_ResetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN);//清除选定的数据端口位。 就是置0


}

bsp_led.c

#include "bsp_led.h"

//如果结构体没有提示的话,就选择Edit->Configuration->Text Completion->show Code Completion for 下面的选项全部勾上!
void LED_GPIO_Config()
{
	GPIO_InitTypeDef GPIO_InitStruct; //定义结构体,结构体中包含了1、端口的输出模式 2、端口的输出速度3、端口的输出引脚
	
		//ENABLE为1
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);  //将端口GPIOB的端口时钟打开,不打开的话等不会亮


	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; //将端口的输出模式定为推挽输出
	GPIO_InitStruct.GPIO_Pin=LED_G_GPIO_PIN;     //引脚配置
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;	//输出速度为50M
   GPIO_Init(LED_G_GPIO_PORT, &GPIO_InitStruct); //调用初始化函数,这个函数将结构里中的设置通过运算配置寄存器CRL的数值。
	
}

bsp_led.h

#ifndef __BSP_LED_H
#define __BSP_LED_H

#include "stm32f10x.h"
#define LED_G_GPIO_PIN       GPIO_Pin_0
#define LED_G_GPIO_PORT       GPIOB
#define LED_G_GPIO_CLK        RCC_APB2Periph_GPIOB
void LED_GPIO_Config();

#define ON  0
#define OFF 1

// 使用标准的固件库控制IO  \为续航符号后面不能有东西不然会报错
#define LED1(a)	if (a)	\
					GPIO_SetBits(LED1_GPIO_PORT,LED1_GPIO_PIN);\
					else		\
					GPIO_ResetBits(LED1_GPIO_PORT,LED1_GPIO_PIN)
#endif


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值