STM32--------按键控制LED灯

知识介绍

工程文件放置


只有在添加进这一串之后,才能使用头文件集合 stm32f10x_conf.h

选择类型

初始化时钟从哪找

在stm32f10x_rcc.c中。

断言函数

此工程需要编写以下五个文档

1.LED.h

#ifndef __LED_H
#define __LED_H
#include "stm32f10x.h"
#define LED_B_GPIO_PIN              GPIO_Pin_1
#define LED_R_GPIO_PIN              GPIO_Pin_5
#define LED_GPIO_PORT               GPIOB
#define LED_GPIO_CLK                RCC_APB2Periph_GPIOB
//反转
#define LED_R_TOGGLE        {LED_GPIO_PORT->ODR ^= LED_R_GPIO_PIN;}//异或可以改变原来的状态
#define LED_B_TOGGLE        {LED_GPIO_PORT->ODR ^= LED_B_GPIO_PIN;}//异或可以改变原来的状态
void LED_GPIO_Config(void);
#endif /* __LED_H */
  1. LED.h
#include "YANG_LED.h"
void LED_GPIO_Config(void)
{/*定义3个GPIO_InitTypeDef 类型的结构体*/GPIO_InitTypeDef  GPIO_InitStruct1;GPIO_InitTypeDef  GPIO_InitStruct2;/*开启 LED 相关的 GPIO 外设时钟*/RCC_APB2PeriphClockCmd(LED_GPIO_CLK, ENABLE);GPIO_InitStruct1.GPIO_Pin = LED_B_GPIO_PIN;GPIO_InitStruct2.GPIO_Pin = LED_R_GPIO_PIN;GPIO_InitStruct1.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStruct1.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStruct2.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStruct2.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct1); GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct2);}
  1. KEY.h
#ifndef __KEY_H#define __KEY_H#include "stm32f10x.h"int anjian(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void KeyInit(void);#endif /* __KEY_H */
  1. KEY.c
#include "key.h"void KeyInit(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOC, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//设置端口模式为浮空输入GPIO_Init(GPIOC, &GPIO_InitStructure);
}int anjian(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{u8 anjianbianliang;int anjianzhi;anjianbianliang=GPIO_ReadInputDataBit(GPIOx, GPIO_Pin);if(anjianbianliang==1)anjianzhi=1;else if(anjianbianliang==0)anjianzhi=0;return anjianzhi;}
  1. main.c
#include "stm32f10x.h"   // 相当于51单片机中的  #include <reg51.h>
#include "LED.h"
#include "KEY.h"int main(void)
{LED_GPIO_Config();Key_Init();while (1) {if(anjian(GPIOC,GPIO_Pin_8)==0){LED_G(ON);            }if(anjian(GPIOC,GPIO_Pin_9)==0){LED_G(OFF);                        }}
  1. 仿真图

STM32(四)--------按键控制LED灯相关推荐

  1. 利用Proteus仿真STM32实现按键控制LED灯设计

    1. 前言 Proteus是英国著名的EDA工具(仿真软件),从原理图布图.代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计.是世界上唯一将电路仿真软件.PC ...

  2. STM32按键控制LED灯亮灭(四)

    编程要点: 1)使能GPIO端口时钟: 2)初始化GPIO目标引脚为输入模式(浮空输入): 3)编写简单测试程序,检测按键的状态,实现按键控制LED灯: bsp_led.h文件 #ifndef T_L ...

  3. 嵌入式系统开发设计——按键控制LED灯实现

    一.实验目的 掌握STM32固件库的使用方法: 掌握基于库函数模板的开发方法: 掌握基于固件库进行GPIO端口编程的方法: 4.规范编程格式. 二.实验内容 1.查阅STM32-V5开发板按键.LED ...

  4. led计数电路实验报告_「正点原子FPGA连载」第八章 按键控制LED灯实验

    1)实验平台:正点原子开拓者FPGA开发板 2)本实例源码下载:请移步正点原子官网 第八章 按键控制LED灯实验 按键是常用的一种控制器件.生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等 ...

  5. 记录1——stm32f411CEU6之点亮一盏LED灯+按键控制LED灯

    文章目录 前言 一.准备工作 二.点亮一盏LED灯 1.配置工程 2.代码实现 3.程序烧录注意 三.按键控制LED灯 1.配置工程 2.代码实现 按键控制 按键进阶1: 按键进阶2 3.基于自己理解 ...

  6. FPGA-02FPGA按键控制LED灯

    按键是常用的一种控制器件.生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等特点,在家电.数码产品.玩具等方面有广泛的应用.本章我们将介绍如何使用按键控制多个LED的亮灭. 本章包括以下几个 ...

  7. 51单片机 4个独立按键控制LED灯 (protues仿真)(C语言版)

    51单片机 4个独立按键控制LED灯 仿真操作及代码展示 _ (protues仿真)_(C语言版) 一.思路及相关问题 1.逻辑思路: 当按下key1时 led1亮起来 因为按下去具有瞬时性不用whi ...

  8. FPGA(1)基础入门 -- 按键控制led灯

    目录 效果说明 1.配置输入输出变量 2.变量赋值 3.配置引脚(输入输出变量) 代码 效果说明 key1按键按下,led1被点亮. key2按键按下,led2被点亮. 1.配置输入输出变量 inpu ...

  9. 基于Verilog的按键控制LED灯

    按键控制LED灯 原理图 程序设计 `timescale 1ns / 1psmodule key_led( input sys_clk, input sys_rst_n, input [3:0] ke ...

  10. 51单片机实现独立按键控制LED灯

    本节博客主要实现以下效果: 3-1独立按键控制LED亮灭 本段代码主要使用了if...else...语句实现按下按下灯亮,松开按键时灯灭 #include <REGX51.H>void m ...

最新文章

  1. 红黑树+java+删除_红黑树深入剖析及Java实现
  2. android拍照自动裁剪_新功能上线!智能人像抠图、图片自由裁剪,PPT 还能这么玩?...
  3. linux更换主板后无法启动网卡
  4. 差分法c语言源程序,差分法求数据压缩
  5. apache php隐藏头信息的方法,科技常识:nginx/apache/php隐藏http头部版本信息的实现方法...
  6. SnapGene 4.3.6 win 中文完美不闪退
  7. jax-rs jax-ws_Tomcat上具有JAX-WS的Web服务
  8. 有效创建Oracle dblink的两种方式
  9. Microsoft MVC Preview 2 ActionFilterAttribute实际开发中的应用
  10. 百度离线地图瓦片下载
  11. java 使用的钩子_Java 钩子程序
  12. 【新闻】本人新书《Java多线程编程实战指南(核心篇)》已出版上市
  13. python强制关闭文件_正在强制删除文件。Python,Windows
  14. kindle paperwhite 使用说明
  15. Mac命令行上传代码至GitHub
  16. 配置微软Azure Kinect DK 录制器k4arecorder
  17. python麦克劳林级数展开
  18. 基于博客系统的访客日志记录
  19. 从Workflowy到印象笔记
  20. 可以播放音乐的微信小程序源码(仿Apple音乐)

热门文章

  1. maven3.6.3 配置环境变量_JDK1.8简单配置环境变量---两步曲
  2. python创建矩阵_Python创建对称矩阵的方法示例【基于numpy模块】
  3. 读取properties文件,中文乱码
  4. xftp实现本地与服务器的文件上传下载(windows)
  5. bzoj 1095 捉迷藏
  6. 自动化安装DHCP配置脚本
  7. $python日期和时间的处理
  8. CSS div 塌陷问题
  9. 关于“只有静态常量整型数据成员才可以在类中初始化”
  10. 在Vue中引入Bootstrap,Font-awesome