stm32固件库点亮LED灯

准备工作

  1. 建立一个led.cled.h 文件
  2. 搞清原理图,查看如何点亮
(输出低电平点亮LED灯)

在这里插入图片描述

led.h

要 #include “stm32f10x.h” 包含库函数

led.c

要 #include “stm32f10x.h” 包含库函数

(一)

  1. 使能APB2时钟,在“stm32f10x_rcc.h”中,找到使能配置函数

void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);

  1. 在“stm32f10x_rcc.h”中,找到外设GPIOC口的宏定义

#define RCC_APB2Periph_GPIOC ((uint32_t)0x00000010)

  1. 查找 FunctionalState NewState 如何使用

typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;

  1. 要使时钟打开,要使能为1----ENABLE
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

(二)结构体配置

  1. 在“stm32f10x_gpio.h”中,找到配置的结构体函数;定义一个新的结构体
GPIO_InitTypeDef led;
  1. 调用结构体的成员函数,实现配置

typedef enum
{ GPIO_Mode_AIN = 0x0, //模拟输入
GPIO_Mode_IN_FLOATING = 0x04, //浮空输入
GPIO_Mode_IPD = 0x28, //下拉输入
GPIO_Mode_IPU = 0x48, //上拉输入
GPIO_Mode_Out_OD = 0x14, //开漏输出
GPIO_Mode_Out_PP = 0x10, //推挽输出
GPIO_Mode_AF_OD = 0x1C,
GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;

    led.GPIO_Mode  =GPIO_Mode_Out_PP; 
	led.GPIO_Pin   =GPIO_Pin_13     ;//PC13口
	led.GPIO_Speed =GPIO_Speed_10MHz;
  1. 对GPIO口的配置函数进行初始化

GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
前半部分的x 是指第几个IO口
后半部分 是指针指向的结构体,要使用取地址符号

GPIO_Init(GPIOC, &led);

main.c

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

int  main()
{
LED_demo();
   while(1)
	 {
	 GPIO_ResetBits(GPIOC, GPIO_Pin_13);     //电平拉低函数
	 }
   
}

完整代码

  • main.c
#include "stm32f10x.h"
#include "led.h"

int  main()
{
LED_demo();
   while(1)
	 {
	 GPIO_ResetBits(GPIOC, GPIO_Pin_13);     //电平拉低函数
	 }
   
}
  • led.c
#include "led.h" 
#include "stm32f10x.h"
void LED_demo(void) 
{
	GPIO_InitTypeDef led;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	led.GPIO_Mode  =GPIO_Mode_Out_PP; 
	led.GPIO_Pin   =GPIO_Pin_13     ;
	led.GPIO_Speed =GPIO_Speed_10MHz;
    GPIO_Init(GPIOC, &led);	
}


  • led.h
#include "stm32f10x.h"
void LED_deme(void);
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值