您的位置:首页 > 其它

STM32学习心得(二)点亮LED灯

2019-05-28 20:37 141 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_44079386/article/details/90646601

STM32学习心得(二)点亮LED灯
在创建好工程模板后,就可以开始真正进入STM32的学习。手下那当然是试着点亮一个LED灯。
首先在USER目录下创建一个空文件夹,并命名为bsp_led(bsp的意思是板级支持包,即该代码仅支持这块板子),进去文件夹,新建两个文件,分别是bsp_led.c以及bsp_led.h
打开工程,把.c文件添加进工程中,同时在路径中设置好.h文件的路径

工程建立完成后,双击打开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(void);

#endif

然后打开bsp_led.c文件,写入以下代码

// bsp: board support package 板级支持包
//即该程序只支持这块板子,不支持别的板子

#include "bsp_led.h"

void LED_GPIO_CONFIG(void)
{
//第一步:新建一个初始化的结构体
GPIO_InitTypeDef GPIO_InitStruct;

//向结构体内添加成员参数
GPIO_InitStruct.GPIO_Pin = LED_G_GPIO_PIN;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//设置为推挽输出
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;

//第二步:调用stm32f10x_gpio.c中的初始化函数
//第一个参数为要设置的端口名,第二个参数为上述定义中的结构体指针
GPIO_Init(LED_G_GPIO_PORT, &GPIO_InitStruct);

//第三步打开时钟,找到RCC固件库中对应的函数
//第一个参数为要配置的引脚,第二个为使能DISABLE/ENABLE
RCC_APB2PeriphClockCmd(LED_G_GPIO_CLK, ENABLE);
}

最后进入main.c文件,写入

#include "stm32f10x.h"

#include"bsp_led.h"

int main(void)
{
while(1)
{
LED_GPIO_CONFIG();
//GPIO_SetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN);
//GPIO_ResetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN);
}
}

编译后下载进板子里,over

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: