0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

第四章 独立按键与LED

撞上电子 2022-01-18 09:51 次阅读

第一节 硬件解读

既然大家都学到物联网了,想必这些基础一定很熟悉,关于按键的消抖等基本知识就不再重复,直接看原理图。LED的原理图,上一章也已经讲解了,本章将重点是独立按键。以下是独立按键的原理图:

f904d148-77af-11ec-9437-dac502259ad0.png

从上图可以看出,该按键连接的引脚是PC14,只要按键被按下,PC14变为低电平,反过来也是,只要该引脚为低电平,即可证明该按键被按下。

第二节 配置环境

1,打开stm32cubeMX。

2,选择“File-New project ...”。

f93cb09a-77af-11ec-9437-dac502259ad0.png

3,搜索芯片,芯片型号为:STM32L071KB(大小写都可以)。并选择芯片封装为UFQFPN32的芯片。

f96b301e-77af-11ec-9437-dac502259ad0.png

4,选择A->Z,这里可以看见该芯片的所有的功能。

f994dfd6-77af-11ec-9437-dac502259ad0.png

5,选中“SYS”,勾选“Debug Serial Wire”,可以看见PA13与PA14引脚变成绿色,分别用作SYS_SWDIO和SYS_SWCLK。

f9b9380e-77af-11ec-9437-dac502259ad0.png

6,将PC14和PC15用作输入和输出。如下图配置:

f9e6d71e-77af-11ec-9437-dac502259ad0.png

7,上一章详细解释了GPIO的输出模式(LED为例)的初始化信息,下面来看看GPIO的输入的配置(以为按键输入为例)。

fa0fcbba-77af-11ec-9437-dac502259ad0.png

8,选中“Project Manager-Project”。在Project Name中填写项目的名字(尽可能不要用中文),在Project Location中选择项目保存的路径(尽可能不要用中文),在Toolchain/IDE中选择编译器,蓝桥杯物联网比赛用的是MDK5,所以我们选择MDK-ARM V5。对于项目信息的操作,大家注意看下面2张图。

fa42990a-77af-11ec-9437-dac502259ad0.png

fa64fd56-77af-11ec-9437-dac502259ad0.png

9,点击GENERATE CODE,生成代码。

fa925508-77af-11ec-9437-dac502259ad0.png

10,点击“close”,代码生成成功。

facbab3c-77af-11ec-9437-dac502259ad0.png

第三节 编写代码

1,根据stm32cubeMX生成代码的目录,打开MDK5。

2,点击”Rebuild”,开始编译代码,检查stm32cubeMX生成的代码是否有问题。如下图,0错误,0警告。

fb0b811c-77af-11ec-9437-dac502259ad0.png

3,在while中添加以下语句,注意,需要在BEGIN与END之间添加。

fb482bbc-77af-11ec-9437-dac502259ad0.png

4,点击”Rebuild”,开始编译代码,检查stm32cubeMX生成的代码是否有问题。如下图,0错误,0警告。

fb7c37f4-77af-11ec-9437-dac502259ad0.png

5,点击”Options for Target...“。

fbc1e998-77af-11ec-9437-dac502259ad0.png

6,点击”Debuy“,然后选择下载器”CMSIS-DAP Debugger“,并点击”OK“。

fbfee1ea-77af-11ec-9437-dac502259ad0.png

7,选择“Debug”--“Settings”--“Flash Download”--“Reset and Run”。这样开发板每次上电都自己先复位一次,再跑程序。

fc328ebe-77af-11ec-9437-dac502259ad0.png

8,点击”Download“,开始下载程序并下载成功。

fc663fde-77af-11ec-9437-dac502259ad0.png

第四节 实验现象

实验注意事项:

1,程序语句需要位于程序的BEGIN与END之间。

2,利用USB线将电脑USB口与开发板USB1口连接。

3,CN4所有拨码开关必须选择ON DP档,否则无法下载程序。

实验现象:

LD1,LD4常亮。按下按键,LD5亮;松开按键,LD5灭。

宗旨:

免费的服务,永远的开源

说明:

1.本教程免费,开源,禁止用于任何商业用途,违者必究。

2.本教程版权所属为东莞市东城墨竹公子电子工作室,盗版必究。fd496ea8-77af-11ec-9437-dac502259ad0.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    242

    文章

    23409

    浏览量

    664165
收藏 人收藏

    评论

    相关推荐

    华为-射频基础知识培训

    课程目标z 熟悉和掌握射频基本概念和知识z 了解无线射频系统结构z 了解天馈系统的概念和知课程内容第一 无线通信的基本概念第二 射频常用计算单位简介第三 射频常用概念辨析第四章
    发表于 12-10 13:39 1次下载

    《DNESP32S3使用指南-IDF版_V1.6》第四章 认识ESP-IDF

    第四章 认识ESP-IDF ESP-IDF是乐鑫科技为其ESP32系列芯片提供的官方开发框架。这个框架主要用于开发、构建和部署基于ESP32的物联网(IoT)应用。我们要写程序控制ESP32芯片
    发表于 11-22 09:49

    《DNK210使用指南 -CanMV版 V1.0》第十四章 按键输入实验

    电平,以判断独立按键是否被按下,若KEY0按键被按下,则控制对应的GPIO输出低电平以控制红色LED亮起,反之则控制对应的GPIO输出高电平以控制红色
    发表于 10-12 09:14

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第三四章阅读报告

    与重定向等机制。 第四章:PRTOS Hypervisor的设计与实现 内容概述 : 第四章则聚焦于PRTOS(Portable Real-Time Operating System)Hypervisor
    发表于 10-09 18:29

    【北京迅为】iTOP-i.MX6开发板使用手册第四部分固件编译第十四章非设备树Android4.4系统编译

    【北京迅为】iTOP-i.MX6开发板使用手册第四部分固件编译第十四章非设备树Android4.4系统编译
    的头像 发表于 09-12 15:43 632次阅读
    【北京迅为】iTOP-i.MX6开发板使用手册<b class='flag-5'>第四</b>部分固件编译第十<b class='flag-5'>四章</b>非设备树Android4.4系统编译

    第四章:对广东龙芯2K0300-蜂鸟板-v1.0视频教程我的感触

    我全部下载了广东龙芯2K0300-蜂鸟板-v1.0视频教程共十四个。 (在哗哩哗哩地址https://space.bilibili.com/481273999) 将看后的感想总结如下: 龙芯LoongArch Linux内核的上游故事.mp425:02分钟62.13MB 文件大小 2022-10-30发表。其内容主讲第17届中国Linux内核开发者大会上陈华才(龙芯中科内核工程师)对LoongArch内核架构演讲。 龙芯云平台技术及应用.mp435:11分钟30.62MB 文件大小 2023-05-09发表。其内容是2023年度龙芯杯精英百强赛前培训,龙芯发展历程,中科院计算所,三大架构服务器、台式机、嵌入式。 龙架构应用开发与适配迁移技术.mp450:39分钟47.41MB 文件大小 2024-04-30发表。其内容是龙架构应用开发与迁移适配技术,龙芯云平台,应用软件迁移的本质,迁移步骤解读,解决方案。 12-广东龙芯2K500-PyQt5应用.mp47:40分钟11.56MB 文件大小 2023-07-21发表。其内容是讲解如何利用广东龙芯2K500板开发python的Qt5,就是PyQt5应用。将连接的液晶屏上显示程序结果。 10-U-boot功能定制.mp443:30分钟360.14MB文件大小2022-11-13发表。其内容是广东龙芯2K500板用户手册中内核引导如何在Visual Studio Code上调试过程及运行在板上。
    发表于 09-11 18:10

    【「ARM MCU嵌入式开发 | 基于国产GD32F10x芯片」阅读体验】+书籍整体概况

    案例为按键控制LED亮灭;第四章介绍了中断和事件,中断包含嵌套向量中断控制器NVIC,EXTI外部中断/事件控制器以及EXTI外部中断处理的常用库函数简介,中断式触摸按键控制
    发表于 08-25 22:48

    第四章:在 PC 交叉编译 aarch64 的 tensorflow 开发环境并测试

    本文介绍了在 PC 端交叉编译 aarch64 平台的 tensorflow 库而非 tensorflow lite 的心酸过程。
    的头像 发表于 08-25 11:38 1444次阅读
    <b class='flag-5'>第四章</b>:在 PC 交叉编译 aarch64 的 tensorflow 开发环境并测试

    第四章-V1.5 舵机 舵机角度控制 PWM控制红外对管和按键控制 STM32驱动舵机控制 SG90控制

    由于C8T6小板子的PA12接了上拉电阻,所以使用PA12的时候要注意。而且如果我们用Mrico USB供电 可能会影响PA11。
    的头像 发表于 08-15 16:20 693次阅读
    <b class='flag-5'>第四章</b>-V1.5 舵机 舵机角度控制 PWM控制红外对管和<b class='flag-5'>按键</b>控制 STM32驱动舵机控制 SG90控制

    双麒麟系统!迅为RK3588开发板+银河麒麟/开放麒麟

    Build root系统功能测试 第四章 Ubuntu系统功能测试 第五 Debian系统功能测试 第六 openkylin系统功能测试 第七 银河麒麟系统功能测试
    发表于 07-15 10:35

    【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第四章)静态数码管显示实验例程

    灯、按键、拨码开关等。 二:实验目的 两个位数码管同时显示0-9,每隔1s数字变化一次。 三:实验原理 数码管是一种基本单元为发光二极管的半导体发光器件。能并行显示位数的数码管称为
    发表于 05-07 10:39

    搭配100教学实验案例,轻松解决老师备课难题!

    Linux系统使用实验第三Linux设备驱动程序开发实验第四章基于ARM基础外设实验第五LinuxQt开发实验第六LinuxPython开发实验向下滑动查看所有内容
    的头像 发表于 05-01 08:31 480次阅读
    搭配100教学实验案例,轻松解决老师备课难题!

    【紫光同创盘古PGX-MINI-4K教程】——(盘古PGX-MINI-4K开发板/PGC4KD-6ILPG144第四章)数码管动态显示实验例程

    数码管,按一下数字加 1,从 0 到 9;按键 K3 控制左侧起第四个数码,按一下数字加 1,从 0 到 9。 :实验原理数码管是一种半导体发光器件,其基本单元是发光二极管。能显示 4 个数码管叫
    发表于 04-28 18:30

    【紫光同创盘古PGX-Lite 7K教程】——(盘古PGX-Lite 7K开发板/PGC7KD-6IMBG256第四章)​数码管动态显示实验例程

    K0 控制右边起第一个数码管,按一下数字加 1,从 0 到 9,按键 K2 控制右边起第二个数码管,按一下数字加 1,从 0 到 9,按键 K3 控制右边起第三个数码管,按键 K4 控制第四
    发表于 04-24 14:51

    基于51单片机的电子钟【调时,DS1302,数码管,独立按键】(仿真)

    基于51单片机的电子钟【调时,DS1302,数码管,独立按键】(仿真)
    的头像 发表于 04-10 00:41 2633次阅读
    基于51单片机的电子钟【调时,DS1302,数码管,<b class='flag-5'>独立</b><b class='flag-5'>按键</b>】(仿真)