使用STM32按键控制LED亮灭

发布时间:2024-03-08  

实验环境

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基础采样时间下按键输入波形


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>