本程序为点亮两个LED,分别为LED1和LED2,分别连接到几口GPIOB的0脚和1脚。

因此首先对GPIOB的0脚和1脚机型初始化。

先创建LED的驱动程序, LED.H和 LED.C

LED.H

#ifndef __LED_H
#define __LED_H
#include "sys.h"//#define LED1 PBout(0)// PB0
//#define LED2 PBout(1)// PB1
#define LEDPORT GPIOB   //定义LED的IO接口
#define LED1    GPIO_Pin_0  //定义LED1 的IO接口
#define LED2    GPIO_Pin_1  //定义LED2 的IO接口void LED_Init(void);//初始化
#endif

LED.C

#include "led.h"void LED_Init(void){ //LED灯的接口初始化GPIO_InitTypeDef  GPIO_InitStructure;         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE);   //设置A,B,C三个端口使能时钟    GPIO_InitStructure.GPIO_Pin = LED1 | LED2; //选择端口号(0,1号端口)                        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置IO接口工作方式为推挽输出       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置IO接口速度50MHzGPIO_Init(LEDPORT, &GPIO_InitStructure);
}/*
选择IO接口工作方式:
GPIO_Mode_AIN 模拟输入
GPIO_Mode_IN_FLOATING 浮空输入
GPIO_Mode_IPD 下拉输入
GPIO_Mode_IPU 上拉输入
GPIO_Mode_Out_PP 推挽输出
GPIO_Mode_Out_OD 开漏输出
GPIO_Mode_AF_PP 复用推挽输出
GPIO_Mode_AF_OD 复用开漏输出
*/

创建MAIN程序
main.c

#include "stm32f10x.h" //STM32头文件
#include "sys.h"
#include "delay.h"
#include "led.h"int main (void){//主程序RCC_Configuration(); //时钟设置LED_Init();while(1){//方法1:GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED1接口输出高电平1delay_us(50000); //延时1秒GPIO_WriteBit(LEDPORT,LED1,(BitAction)(0)); //LED1接口输出低电平0delay_us(50000); //延时1秒//方法2:
//      GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1-GPIO_ReadOutputDataBit(LEDPORT,LED1))); //取反LED1
//      delay_ms(500); //延时1秒//方法3:
//      GPIO_SetBits(LEDPORT,LED1); //LED灯都为高电平(1)
//      delay_s(1); //延时1秒
//      GPIO_ResetBits(LEDPORT,LED1); //LED灯都为低电平(0)
//      delay_s(1); //延时1秒//方法4
//      GPIO_Write(LEDPORT,0x0001); //直接数值操作将变量值写入LED
//      delay_s(2); //延时1秒
//      GPIO_Write(LEDPORT,0x0000); //直接数值操作将变量值写入LED
//      delay_s(2); //延时1秒}
}

STM32F103四种方法实现的LED闪灯程序相关推荐

  1. 转:让程序只运行一个实例的四种方法

    先留着以后有用. 让程序只运行一个实例的四种方法 综述:让一个程序只运行一个实例的方法有多种,但是原理都类似,也就是在程序创建前,有窗口的程序在窗口创建前,检查系统中是否已经设置了某些特定标志了,如果 ...

  2. Qt延时处理的四种方法

    Qt延时处理的四种方法 这里提供四种方法: 1. 多线程程序使用QThread::sleep()或者QThread::msleep()或QThread::usleep()或QThread::wait( ...

  3. 【51单片机入门】实现流水灯的原理及四种方法(详细易上手型)

    初学单片机,流水灯的实现是必不可少的,下面将介绍流水灯的原理及使用STC-ISP软件延时计算器生成的延时代码实现流水灯的四种方法,最后介绍如何将延时函数模块化. 目录 一.流水灯原理 二.循环 三.移 ...

  4. java 中lock,java中lock获取锁的四种方法

    在java接口中会存放着许多方法,方便线程使用时的直接调用.对于lock接口大家都不陌生,我们已经初步对概念进行了理解.那么在获取锁的方法上想必还不是很清楚.下面我们就lock获取锁的四种方法分别进行 ...

  5. 简单介绍C语言使用四种方法初始化结构体

    这篇文章说明了什么是结构体,介绍了结构体的概念和使用优点,在C语言中如何使用和初始化结构体方法,通过详细的代码展开进行说明,希望该篇文章对你有所帮助 什么是结构体 在实际问题中,一组数据往往有很多种不 ...

  6. svg鼠标响应事件的四种方法(其中两种可支持火狐)

    svg鼠标响应事件的四种方法 鼠标响应事件的四种方法,以click事件为例. Mouse Events - SMIL <?xml version="1.0" encoding ...

  7. oracle调整字段精度的四种方法

    oracle调整字段精度的四种方法: 01_执行用户_ddl/dml_表名_注释(建表/授权/同义词) 调整方式一:(精度只能调大不能调小) alter table table_name_a MODI ...

  8. (转).NET导出Excel的四种方法及评测

    .NET导出Excel的四种方法及评测 导出Excel是.NET的常见需求,开源社区.市场上,都提供了不少各式各样的Excel操作相关包.本文,我将使用NPOI.EPPlus.OpenXML.Aspo ...

  9. 详解Java解析XML的四种方法

    http://developer.51cto.com  2009-03-31 13:12  cnlw1985  javaeye  我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...

最新文章

  1. SQL中游标的使用(转)
  2. Go_笔试题记录-指针与值类型实现接口的区别
  3. python发邮件实例_python 发送邮件实例
  4. 微信已经老了,头条永远年轻
  5. 计算机组成原理—存储系统总结
  6. python-下拉框处理
  7. php 调试环境配置
  8. 软件测试——JUnit基础
  9. 新华三计算机网络题,计算机等考试三网络技术模拟试题及答案(二)云南新华电脑学校.doc...
  10. 布客·ApacheCN 编程/后端/大数据/人工智能学习资源 2020.11
  11. 【C语言及程序设计】项目1-4-2-4:计算圆柱体表面积
  12. 【开始报名】第二届中国移动“梧桐杯”大数据应用创新大赛邀你夺52w大奖
  13. 书香小说APP界面设计
  14. Web 开发中地图使用——高德地图定位功能
  15. NOIP模拟赛8.16 C、长跑(LCT)
  16. 服务器搭建——ftp
  17. 区块链、NFT与元宇宙中的稀缺性技术
  18. 智慧高速再“提速”,数字化+智能化成建设焦点
  19. 惠普服务器是什么芯片,惠普将首次在服务器中应用AMD的Opteron芯片
  20. 12-属性动画源码分析

热门文章

  1. Pandas: Python界的Excel
  2. Mkdocs配置教程
  3. 浅显易懂地看LLC变换器(四)
  4. java gif合成_javacv之于视频/GIF解帧及重新拼接生成GIF实现
  5. 宝钢集团通知全体员工卸载360软件
  6. Android如何设计一个H5容器
  7. 2021-2027全球与中国机械控制系统市场现状及未来发展趋势
  8. diy物联网-1.物联网控制器的网络配置与更换网络
  9. 关于微信跳转,这里有你想知道的一切weixin://dl/business/?ticket=td9cd0bf056c561fe9f56e33c61df61bf...
  10. 计算机软件科学专利,计算机软件专利有哪些