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

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

3天内不再提示

使用STM32按键控制LED亮灭

CHANBAEK 来源: 想啥做啥 作者: 想啥做啥 2023-11-29 16:22 次阅读

实验环境

Matlab版本 :2021b

操作系统 :Win10专业版

硬件平台 :YF-STM32-ALPHA 1R4

模型与原理图

本次实验所用到的Simulink模型如图5.1所示,实验现象: 按键按下、松开LED循环实现翻转亮灭效果,当按键按下时,产生下降沿脉冲,通过一个计数器对下降沿脉冲进行0~1循环计数,计数到最大值时产生输出信号,输出信号为0时,控制LED熄灭,输出值为1时,控制LED点亮。

按键电路采用对电源负极方式连接,按键松开状态为高电平H,即逻辑1,按键按下状态为低电平L,即逻辑0。

图片

图5.1 按键控制LED亮灭simulink模型

图片图5.2 按键控制LED亮灭原理图

图片

图5.3 按键在开发板中的位置

基础模型介绍与分析

"Digital Read"模型与设置为STM32专用读取I/O端口数据模型,更改“Pin:”编号可使其与STM32引脚对应到芯片端口,“Sample time:”采样时间设置为-1时表示采样时间跟随系统基础采样时间,如图5.4所示。

图片

图5.4 "Digital Read"模型与参数设置

Count Up”计数器模型如图5.5所示,此处“Count event”栏将其设置为"Falling edge"(下降沿)计数方式(单片机按键需保持为上拉输入),"Counter size"(计数大小)采用“User defined”(自定义)方式,“Maximum count”设置为1,“Output”设置为“Hit”方式,去掉“Reset input”勾选项。“Switch”模型保持默认设置,然后分别将其他两个输入端口与“Constant”模型连接,如图5.6所示。

图片

图5.5 “Count Up”模型设置

图片

图5.6 "Switch"模型

注意此处设置比较关键,我们需要在“配置”参数中将“求解器->求解器选择”栏中的“类型”设置为“定步长”,“求解器”设置为“离散(无连续状态)”,将“求解器详细信息”栏中的“固定步长(基础采样时间)”设置为0.1,即0.1s,最终设置好的效果如图5.7所示。至于为什么要这样设置,在后面我们会对它做一个简单的对比分析,不然整个模型运行的会非常缓慢。

图片

图5.7 “基础采样时间”设置

总结

本实验中只使用了两个基本模型“Count Up”和“Switch”模型实现按键控制LED反转,当然其中的"Switch"模型去掉也可以实现同样的效果,读者朋友还可以尝试使用其它模型搭建实现同样效果。

读者朋友可以思考下我们以往使用传统方式开发单片机按键输入程序时如果不使用简单的滤波算法,那么按键按下和松开瞬间由于按键的弹跳特性,会出现多次按下或松开状况,但是在本次实验中并没有看到这类滤波?另外以往我们一般使用状态机方式读取按键值,simulink中状态机又该如何使用呢?大家可以尝试使用stateflow状态机方式去实现下。

拓展延申

在前面我们有提到采样时间设置的问题,这里简单的分析下不同采样时间下的按键波形,模型如图5.9所示,在“配置参数->求解器->求解器详细信息->固定步长(基础采样时间)”中将时间设置为0.01秒,如图5.10所示。

图片

图5.9 按键波形测试模型

图片

图5.10 0.01s采样时间设置

单击线条上方会出现三个小点“...”点击小点会出现如图5.11所示信号标识,单击该信号会出现在线条上方,如图5.12所示,此时我们需要点击“Monitor & Tune”进入硬件在环模式,然后点击“数据查看器”按钮如图5.13所示,弹出的信号查看器窗口如图5.14所示,勾选上左侧需要监控的信号,当按键按下时就会显示相应的实际波形。

图片

图5.11 信号记录操作方式

图片

图5.12 在环模式下监控数据

图片

图5.12 0.01基础采样时间下按键输入波形

图片

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

    关注

    242

    文章

    23427

    浏览量

    664474
  • 原理图
    +关注

    关注

    1305

    文章

    6367

    浏览量

    235750
  • STM32
    +关注

    关注

    2275

    文章

    10932

    浏览量

    358284
  • Simulink
    +关注

    关注

    22

    文章

    536

    浏览量

    62834
  • 按键电路
    +关注

    关注

    1

    文章

    35

    浏览量

    21841
收藏 人收藏

    相关推荐

    STM32按键控制LED

    使用一个按键控制LED按键按下时LED亮起,按键
    的头像 发表于 12-11 14:19 4053次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>按键控制</b><b class='flag-5'>LED</b>的<b class='flag-5'>亮</b><b class='flag-5'>灭</b>

    stm32f103按键控制led

    stm32f103按键控制led,正题引入:下面就直接进入正题,按键中断
    发表于 08-05 07:37

    利用按键控制LED

    STM32 HAL库 CubeMX教程(四)外部中断实验内容NVIC(嵌套向量中断控制器)外部中断简介CubeMX配置中断回调函数编写实验内容 利用按键控制LED
    发表于 08-09 09:02

    STM32F103实验二:按键控制LED 精选资料推荐

    STM32单片机按键控制LED
    发表于 08-16 07:16

    利用按键控制LED灯的

    STM32F4工程--IO口--按键控制点灯程序(库函数) ----芯片:STM32F429IGT6本文章介绍使用STM32F4单片机,利用按键控制
    发表于 08-24 07:18

    按键控制外部中断实现LED的方法

    一,按键控制外部中断实现LED开机使得P1.0管脚的LED按下
    发表于 12-06 08:19

    如何利用Stduino通过按键控制LED

    2020/01/06 星期一作者:Astilbe问题:如何利用Stduino通过按键控制LED。我们已经学习过怎么点亮一颗LED灯,那
    发表于 01-05 07:52

    基于CC2530芯片按键控制LED 实验资料下载

    基于CC2530芯片按键控制LED 实验资料下载
    发表于 05-03 10:00 7次下载

    使用51单片机按键控制LED和单个IO翻转的程序免费下载

    本文档的主要内容详细介绍的是使用51单片机按键控制LED和单个IO翻转的程序免费下载。
    发表于 07-08 17:41 12次下载
    使用51单片机<b class='flag-5'>按键控制</b><b class='flag-5'>LED</b><b class='flag-5'>亮</b><b class='flag-5'>灭</b>和单个IO翻转的程序免费下载

    FPGA入门系列实验教程之按键控制LED的详细资料说明

    实现按键控制LED。通过这个实验,掌握采用Verilog HDL语言编程实现按键控制LED
    发表于 06-11 16:50 31次下载
    FPGA入门系列实验教程之<b class='flag-5'>按键控制</b><b class='flag-5'>LED</b><b class='flag-5'>亮</b><b class='flag-5'>灭</b>的详细资料说明

    FPGA入门系列实验教程之如何进行按键消抖控制LED

    实现按键控制 LED 。通过这个实验,掌握采用 Verilog HDL 语言编程实现按键控制 LED
    发表于 06-11 16:50 13次下载
    FPGA入门系列实验教程之如何进行<b class='flag-5'>按键</b>消抖<b class='flag-5'>控制</b><b class='flag-5'>LED</b><b class='flag-5'>亮</b><b class='flag-5'>灭</b>

    按键控制LED灯的闪烁工程文件免费下载

    本文档的主要内容详细介绍的是按键控制LED灯的闪烁工程文件免费下载。
    发表于 05-28 08:00 24次下载
    <b class='flag-5'>按键控制</b><b class='flag-5'>LED</b>灯的闪烁<b class='flag-5'>亮</b><b class='flag-5'>灭</b>工程文件免费下载

    STM32F103实验二:按键控制LED

    STM32单片机按键控制LED
    发表于 12-16 16:55 62次下载
    <b class='flag-5'>STM32</b>F103实验二:<b class='flag-5'>按键控制</b><b class='flag-5'>LED</b><b class='flag-5'>亮</b><b class='flag-5'>灭</b>

    基于stm32按键控制led

    基于stm32按键控制led资料文件分享
    发表于 09-21 15:50 39次下载

    stm32按键控制led

    stm32按键控制led  在嵌入式系统中,硬件按键常常被用作开关输入,
    的头像 发表于 09-02 17:05 1.1w次阅读