datasheet

STM32F103(库函数)——点亮LED并且使用软件延时实现led闪烁

2019-05-22来源: eefocus关键字:STM32F103  库函数  点亮LED  软件延时  led闪烁

当我们学过51单片机之后就知道在51单片机中点亮一个LED很简单一句代码就可以实现。只需要将LED所连接的IO口拉低就可以点亮LED。


但是在STM32中,点亮LED确实比51要麻烦很多。


一样,在STM32中点亮LED也是属于基本的IO口的使用,所以每当我们需要点亮LED时就需要正确配置IO口。STM32的IO口相比51单片机而言要复杂很多,所以用起来也很困难。

下面就是点亮LED的代码,并且使用延时实现LED闪烁。


main.c


#include "stm32f10x.h"

#include "led.h"

#include "delay.h"

#include "sys.h"

 

int main(void)

{

LED_Init();

delay_init();

while(1)

{

// GPIO_SetBits(GPIOB,GPIO_Pin_5);        //点亮LED0

// GPIO_ResetBits(GPIOE,GPIO_Pin_5);      //关闭LED1 

// delay_ms(500);                         //软件延时500ms

// GPIO_SetBits(GPIOE,GPIO_Pin_5);        //点亮LED1

// GPIO_ResetBits(GPIOB,GPIO_Pin_5);      //关闭LED0

// delay_ms(500);                         //软件延时500ms

LED0 = 1;        //关闭LED0

LED1 = 0;        //点亮LED1

delay_ms(500);   //软件延时500ms

LED0 = 0;        //点亮LED0

LED1 = 1;        //关闭LED1

delay_ms(500);   //软件延时500ms

}

}

led.c


#include "led.h"

 

void LED_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);//设能PB和PE口

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0->PB5 端口配置

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度50MHz

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出

GPIO_Init(GPIOB, &GPIO_InitStructure); //根据参数设定参数配置GPIO

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1->PE5 端口配置

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度50MHz

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出

GPIO_Init(GPIOE, &GPIO_InitStructure); //根据参数设定参数配置GPIO

}

led.h


#ifndef __LED_H__

#define __LED_H__

 

#include "sys.h"

 

#define LED0 PBout(5)

#define LED1 PEout(5)

 

void LED_Init(void);

 

 

#endif


关键字:STM32F103  库函数  点亮LED  软件延时  led闪烁

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/ic462574.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32F103(库函数)——按键检测
下一篇:stm32(库函数)——新建基于固件库的MDK5工程模板

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32F042 基于CubeMX HAL库CAN的配置

"stm32f0xx_hal.h" CAN_HandleTypeDef hcan;  CAN_FilterConfTypeDef  sFilterConfig;static CanTxMsgTypeDef        TxMessage;static CanRxMsgTypeDef        RxMessage; void SystemClock_Config(void);static void MX_GPIO_Init(void);static void
发表于 2019-06-17
STM32F042 基于CubeMX HAL库CAN的配置

STM32F407 SPI flash

STM32F407 SPI接口:STM32F4XX时钟计算HCLK=168M PCLK1 =HCLK/4 =42M PCLK2 =HCLK/2 =84MSPI2、SPI3在PCLK1,最大时钟为42MSPI1在PCLK2,最大时钟为84MSTM32F4 支持的最大SPI时钟为37.5Mbits/s 因此需要分频。例程选择SPI2 分频后为21M串行Flash W25Q64BVSSIG (最高支持80MHz)。测试:全部写入0XAA 数据长度8192K 擦除:20.798 写入耗时42.599S 读:9.008S百度的参照时间擦除:8.9S 写入22.5S 读出 1.8S  校验时间1.8S 芯片特点
发表于 2019-06-17
STM32F407 SPI flash

STM32F4 USART1 TX RX FIFO

。***********************************************************************************************************///#include "stm32f4xx.h"#include "bspdebug_usartbsp_debug_uart.h"#include "bsp.h"#include <stdio.h>#define  debug_uart_tx_buf_size  1*1024#define  debug_uart_rx_buf_size  1*1024static uint8_t g_TxBuf
发表于 2019-06-17

STM32F03开发板--系统时钟设置SysTick

首先我先分析下startup_stm32f0xx.s启动代码,其中/* Call the clock system intitialization function.*/  bl  SystemInit/* Call the application's entry point.*/  bl main发现开发板上电启动过程中,先调用了SystemInit()函数,再进入main()函数。SystemInit()函数在文件system_stm32f0xx.c中,它的作用是设置系统时钟SYSCLK。下面是SystemInit()源码:void SystemInit (void){ 
发表于 2019-06-17
STM32F03开发板--系统时钟设置SysTick

STM32F429 如何使用SDRAM

关于STM32F429 控制SDRAM( FMC—扩展外部SDRAM )(1)原理介绍:https://www.cnblogs.com/firege/p/5805812.html      》为什么是FMC 不是 FSMC ?区别在那里!      STM32F429使用FMC外设来管理扩展的存储器,FMC是Flexible Memory Controller的缩写,译为可变存储控制器。      它可以用于驱动包括SRAM、SDRAM、NOR FLASH以及NAND FLSAH类型的存储器。      
发表于 2019-06-17
STM32F429 如何使用SDRAM

STM32F429 如何使用NAND Flash

(1)原理介绍:http://www.51hei.com/stm32/3609.htmlFlash即是存储芯片的一种,其结合了ROM和RAM的特点,既具备电可擦除编程的性能,又可以快速读取数据,数据不会因断电丢失。目前市面上Flash主要有NOR Flash和NAND Flash。NOR Flash具有随机存取和随字节执行写操作的能力,即可以访问到存储器内部的任意一个字节,且具有读取速度快等特点,它占据1MB—16MB闪存的大部分市场,根据其读取数据速度快的特点主要应用在代码存储;NAND Flash以“页”为单位进行对数据的读写操作,且具有写入和擦除速度快等特点,它应用在8MB—256MB的产品中,根据其特点
发表于 2019-06-17

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved