HAL库点LED灯

news2024/12/24 9:30:06

文章目录

  • 一、创建CubeMX项目
    • 操作步骤
      • 1.STM32CubeMX创建工程
      • 2.选择芯片
      • 3.Pinout & Configuration配置
      • 4.Clock Configuration配置
      • 5.Project Manager配置
  • 二、实验
    • (一)LED流水灯
      • 1.Keil修改代码
      • 2.实验现象
      • 3.keil波形仿真
    • (二)2只LED灯的周期性闪烁
      • 1.Keil修改代码
      • 2.实验现象
      • 3.波形仿真
    • (三)中断控制流水灯
      • 1.步骤
      • 2.keil代码部分
      • 3.实验现象
      • 4.keil波形仿真
  • 三、总结

一、创建CubeMX项目

操作步骤

1.STM32CubeMX创建工程

打开STM32CubeMX,新建工程。
在这里插入图片描述

2.选择芯片

在这里插入图片描述

3.Pinout & Configuration配置

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.Clock Configuration配置

在这里插入图片描述

5.Project Manager配置

在这里插入图片描述
注意保存文件的路径不能含有中文字符。

在这里插入图片描述

在这里插入图片描述
至此,接下来会进入keil,并自动创建keil的代码。

二、实验

(一)LED流水灯

重做上一个LED流水灯作业

1.Keil修改代码

在main()函数的while(1)循环里修改代码

在这里插入图片描述

直接编译,下载。

2.实验现象

20240520_001

3.keil波形仿真

在这里插入图片描述
在这里插入图片描述

(二)2只LED灯的周期性闪烁

用GPIO端口完成2只LED灯的周期闪烁。

1.Keil修改代码

在main()函数的while(1)循环里修改代码

代码:

	HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
	HAL_Delay(250); //延时0.25s
	HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
	HAL_Delay(250); //延时0.25s

在这里插入图片描述

2.实验现象

20240524_001

3.波形仿真

在这里插入图片描述

(三)中断控制流水灯

接上,再用GPIO端某一管脚接2个开关(用杜邦线模拟代替)。采用中断模式编程,当2分开关接高电平时,对应的两个LED灯停止工作(即停止周期性闪烁),接低电平时,恢复工作。(参考教材图6-12)

思路:用PB1作为开关,杜邦线一端接入PB1,另一端接入

1.步骤

①将PB0和PB1设置为外部中断源,PA8和PA9作为输出端口用来接小灯。
在这里插入图片描述

②设置中断源PB0和PB1为上升沿触发,默认为下拉输入。
在这里插入图片描述

③设置PA8、PA9输出口的速度为high。

在这里插入图片描述

④开启中断。在这里插入图片描述

⑤查看有关中断函数
在这里插入图片描述
在这里插入图片描述

2.keil代码部分

①重写弱函数

 HAL_GPIO_EXTI_Callback(GPIO_Pin)
 {
	if(GPIO_Pin == GPIO_PIN_0|GPIO_PIN_1)
	{
	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_9,GPIO_PIN_SET);	
	}
}

②main()中的while(1)循环

  while (1)
  {
	HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_8);
	HAL_Delay(250); //延时0.25s
	HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_9);
	HAL_Delay(250); //延时0.25s
  }

3.实验现象

20240524——002

4.keil波形仿真

在这里插入图片描述

三、总结

中断是STM32学习的一个重点,也是一个难点。要深刻理解中断标志位、明白中断开始和结束的条件,这几个关键点,才更有助于我们学习中断。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1688648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM学习-堆空间(一)

堆空间 每个进程(JVM实例)拥有唯一的方法区和堆空间,拥有唯一的Runtime实例(基于饿汉式方式),线程共享进程的方法区和堆空间,每个线程拥有独立的程序计数器、本地方法栈和虚拟机栈。 一个JVM实例只存在一个堆内存&am…

MySQL主从复制(三):主从延迟

主备流程图: 谈到主备的复制能力,要关注的是上图中的两个黑色箭头。 一个箭头代表了客户端写入主库,另一个箭头代表的是sql_thread执行中转日志(relay log)。如果用箭头的粗细来代表并行度的话,那么真实情…

spring-boot集成slf4j(二)logback配置详解

一、configuration 根节点:configuration,作为顶级标签, 可以用来配置一些lockback的全局属性,常见的属性如下: (1)scan“true” :scan是否开启自动扫描,监控配置文件更…

【Crypto】看我回旋踢

文章目录 一、看我回旋踢二、知识点什么是ROT13?工作原理分析字符串格式 解题感悟 一、看我回旋踢 关键词回旋,盲猜ROT13 因为以 synt{ 开头,并以 } 结束,基本可以判断是ROT13 小小flag,拿下! 二、知识点 …

Algoriddim djay Pro Ai for Mac:AI引领,混音新篇章

当AI遇上音乐,会碰撞出怎样的火花?Algoriddim djay Pro Ai for Mac给出了答案。这款专业的DJ混音软件,以AI为引擎,引领我们进入混音的新篇章。 djay Pro Ai for Mac的智能混音功能,让每一位DJ都能感受到前所未有的创作…

LAMDA面试准备(2024-05-23)

有没有学习过机器学习,提问了 FP-Growth 相比 Apriori 的优点 1. 更高的效率和更少的计算量(时间) FP-Growth 通过构建和遍历 FP-树 (Frequent Pattern Tree) 来挖掘频繁项集,而不需要像 Apriori 那样生成和测试大量的候选项集。具…

GQL 来了!ISO/IEC 正式发布 GQL 数据库国际标准!

历时四年筹备,超过20个国家的标准和技术专家参与制定,ISO/IEC GQL (图查询语言)标准于2024年4月12日正式发布! 作为国际标准化组织(ISO)继 1987年 发布SQL后,唯一发布的数据库查询语…

数据库迁移——kettle开发01

背景:数据库的多种多样,在搭建项目之初,并没有详细考虑到数据库的建设,当增加配置不能满足业务场景需要时,这时候考虑到使用更高性能的数据库,如将MySQL更换为oracle数据库。或者在搭建新项目时&#xff0c…

【EXCEL_VBA_基础知识】08 在VBA中使用公式 ※

课程来源:王佩丰老师的《王佩丰学VBA视频教程》,如有侵权,请联系删除! 目录 1. 函数在哪找? 1.1 工作表函数(Application.WorksheetFunction.func) 1.2 VBA函数 2. 常用VBA变量 3. 函数应用…

如何做好云安全防护

随着云计算技术的迅猛发展和普及,越来越多的企业和个人选择将数据和业务应用迁移到云平台,以享受其带来的高效、便捷和可扩展性。然而,云环境的复杂性和开放性也带来了前所未有的安全挑战。如何确保云环境中的数据安全,成为了每一…

瑞米派Ubuntu系统移植指南-米尔RemiPi

1.概述 Linux系统平台上有许多开源的系统构建框架,这些框架方便了开发者进行嵌入式系统的构建和定制化开发,目前比较常见的有Buildroot, Yocto, OpenEmbedded等等。 同时更多的传统的桌面系统也加入到嵌入式环境体系中,如Ubuntu&#xff0c…

微信小程序使用input标签遇到的问题

场景1&#xff1a;多个input标签切换无法聚焦问题 解决方案1&#xff1a; 在网上搜的用官方给的always-embed属性&#xff0c;但是也明确标注了只有ios可用 解决方案2&#xff1a; 使用focus属性&#xff1a;每次点击input标签都重新设置 wxml: <input adjust-position…

一文带你了解所有常用排序算法

目录 快速排序 堆排序 桶排序 归并排序 拓扑排序 本文主要介绍那些我在刷题过程中常用到的排序算法: 快速排序,堆排序,桶排序,归并排序,拓扑排序 其余算法例如冒泡,插入这种效率特别低的算法就不介绍了,用的可能性极小 每一个算法都将采用例题加解释的方式进行介绍 快速…

文心智能体应用示例:职场反PUA专家的诞生

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

LangChain llamaindex

LangChain 参考&#xff1a; 全流程 | Windows 系统本地部署开源模型阿里通义千问 QWEN 1.5&#xff0c;结合 LangChain-Chatchat 框架和向量数据库 FAISS、Milvus - 知乎

蓝桥杯-数三角(ac代码时间复杂度分析)

问题描述 小明在二维坐标系中放置了 ( n ) 个点&#xff0c;他想在其中选出一个包含三个点的子集&#xff0c;这三个点能组成三角形。然而这样的方案太多了&#xff0c;他决定只选择那些可以组成等腰三角形的方案。请帮他计算出一共有多少种选法可以组成等腰三角形&#xff1f…

Convolutional Occupancy Networks【ECCV2020】

论文&#xff1a;https://arxiv.org/pdf/2003.04618 代码&#xff1a;GitHub - autonomousvision/convolutional_occupancy_networks: [ECCV20] Convolutional Occupancy Networks 图 1&#xff1a;卷积占据网络。传统的隐式模型 (a) 由于其全连接网络结构&#xff0c;表现能力…

【30天精通Prometheus:一站式监控实战指南】第4天:node_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们&#x1f44b;   欢迎加入【30天精通Prometheus】专栏&#xff01;&#x1f4da; 在这里&#xff0c;我们将探索Prometheus的强大功能&#xff0c;并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。&#x1f680;   Prometheus是云原生和DevOps的…

4月空调行业线上市场销售数据分析

随着生活品质的提升&#xff0c;消费者对家用空调的诉求不仅仅满足于基本制冷制热功能&#xff0c;而是在环保节能、功能升维、舒适送风、智能科技、焕新设计等多维度提出需求。这种多样化的需求推动了空调产品的创新和升级&#xff0c;这不仅提高了空调的市场竞争力&#xff0…

Linux程序开发(六):进程编程和系统日志守护进程

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…