STM32——使用cubemx和keil点亮第一个灯

news2024/10/6 14:32:26

一、环境
cubemx安装和搭建见博文
链接: STM32CubeMX安装
keil安装见软件安装管家,注意要是MDK版
二、cubemx操作
1.打开cubemx
在这里插入图片描述
2.选择ACCESS TO MCU SLCTOR,创建一个新的工程。
在这里插入图片描述
3.选择合适的芯片型号
在这里插入图片描述
具体的开发板芯片型号根据自己的板子来。我的是STMF429IG
在这里插入图片描述
4.选择IGTx之后,点击开始工程
在这里插入图片描述
在这里插入图片描述
5.进行引脚和时钟等的配置
在这里插入图片描述
在这里插入图片描述
引脚配置
在这里插入图片描述
要把PH10,PH11,PH12的引脚设置为输出模式。
搜索PH10,引脚会闪烁,然后点击引脚设置为输出模式
在这里插入图片描述
同样PH11,PH12都要进行这个操作。
设置完之后
在这里插入图片描述
将三个引脚的输出改为高电平。在这里插入图片描述

时钟配置
在这里插入图片描述
6.进入工程管理页面,进行路径的选择,以及其他的配置。
在这里插入图片描述
点击code generator
在这里插入图片描述
j进行其他的设置
在这里插入图片描述
设置完成之后,点击GENERATER CODE
在这里插入图片描述
在弹出的页面的指示下,点击OPEN PROJECT。
CUBEMX的操作结束,下面进入KEIL界面。

三、keil操作以及实验现象
1.首先是各个地方的基本配置
在这里插入图片描述
edit >configuration
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
勾选Browse Information之后,可以实现程序的跳转。
在这里插入图片描述
点击debug选项,将ST—LINK换成CMSIS
在这里插入图片描述
之后继续点击settings
在这里插入图片描述
这里就表示可以识别到仿真器,并可以进行程序的下载。
点击Flash Download
在这里插入图片描述
勾选reset and run 。
设置完后之后,点击ok进行确定。

2.程序的编辑
要把程序写在begin和and之间,这样可以避免重新进行配置的时候把我们自己写的代码刷掉。
①点亮第一个灯的代码如下。

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */
  HAL_GPIO_WritePin(GPIOH,GPIO_PIN_10,GPIO_PIN_RESET);
  /* USER CODE END 2 */

在这里插入图片描述
代码解释
使用HAL_GPIO_WritePin对GPIO口进行设置,
其中GPIOH,代表的是对GPIOH进行操作
在这里插入图片描述
在这里插入图片描述
GPIO_PIN_10,代表的是H组的引脚10。
在这里插入图片描述
RESET代表是0,SET代表的是1。
这行代码就实现了一个简单的点灯操作。
实验现象
在这里插入图片描述
②咱们继续尝试,继续玩

 /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */
  HAL_GPIO_WritePin(GPIOH,GPIO_PIN_10,GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOH,GPIO_PIN_11,GPIO_PIN_RESET);
  /* USER CODE END 2 */

这段代码的含义和上面差不多,就是让PH10不置0,让PH11置0,从而实现点灯操作。这里是一个灯里面有三个不同颜色的灯珠,这次点亮的是与PH11相连的发光二极管。
实验现象
在这里插入图片描述
同样的对PH12进行操作

/* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */
  HAL_GPIO_WritePin(GPIOH,GPIO_PIN_10,GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOH,GPIO_PIN_11,GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOH,GPIO_PIN_12,GPIO_PIN_RESET);
  /* USER CODE END 2 */

实验结果
在这里插入图片描述
③难度升级,加一个按键操作控制灯的亮灭
我们首先看一下原理图。
在这里插入图片描述
这里拿PA0举例。
打开CUBEMX,搜索PA0,找到PA0这个引脚,并将其设置为输入模式。
在这里插入图片描述
在这里插入图片描述
那么按键就设置好了。我们点击GENERATE CODE。

原来的就被覆盖了,我们按照窗口提示,同意reload。
接下来进行对按键进行编码。
在这里插入图片描述


  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */
 // HAL_GPIO_WritePin(GPIOH,GPIO_PIN_10,GPIO_PIN_SET);
	//HAL_GPIO_WritePin(GPIOH,GPIO_PIN_11,GPIO_PIN_SET);
	//HAL_GPIO_WritePin(GPIOH,GPIO_PIN_12,GPIO_PIN_RESET);
	GPIO_PinState k1
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		k1 = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0);
		if(k1 == GPIO_PIN_SET)
		{
			HAL_GPIO_ReadPin(GPIOH,GPIO_PIN_10,GPIO_PIN_RESET)
		}
		else
		 HAL_GPIO_ReadPin(GPIOH,GPIO_PIN_10,GPIO_PIN_SET)	
  }
  /* USER CODE END 3 */
}

Ⅰ、初始化,将Pinstate用k1来标识。

GPIO_PinState k1

Ⅱ、读取按键状态

	k1 = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0);

在这里插入图片描述
第一个参数为端口,第二个参数为具体的引脚编号。
Ⅲ、if else,如果检测到按键是高电平,那么红灯亮,否则的话。不亮。

	if(k1 == GPIO_PIN_SET)
		{
			HAL_GPIO_WritePin(GPIOH,GPIO_PIN_10,GPIO_PIN_RESET);
		}
		else
		 HAL_GPIO_WritePin(GPIOH,GPIO_PIN_10,GPIO_PIN_SET);	
  }

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

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

相关文章

AT32F435/F437 QSPI驱动华邦/恒烁 NAND FLASH(W25N01G/ZB35Q01A)

好记性不如烂笔头,既然不够聪明,就乖乖的做笔记,温故而知新。 本文档用于本人对知识点的梳理和记录 目录 一、前言 二、器件分析 三、代码分析 四、结语 一、前言 (ST生态)雅特力AT32F435/F437 QSPI驱动NAND FLASH(W25N01G/ZB35Q01A) SPI驱…

如何使用WordPress构建一个亚马逊联盟商店

您想使用 WordPress 建立亚马逊联盟商店吗? 亚马逊联盟商店允许您作为联盟会员销售亚马逊的产品,并在每次销售中赚取收入。由于启动和运营成本较低,亚马逊联营店是开展新业务和在线赚钱的最简单方法之一。 在本文中,我们将向您展…

出海企业系列风险分析--App出海注意事项

看着SHEIN、TikTok、米哈游,甚至pdd等企业在海外市场风光无限,很多公司意识到出海的彼岸有更多点石成金的机遇,于是顺势打造了一款出海APP,正当海外用户飞速增长,生意红红火火,却遇到了这样的问题&#xff…

[LangChain核心模块]模型的输入和输出->Prompts

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:人工智能。 目录 1、简介2、Prompts(提示)2.1、Prompt templates2.1.1、创建提示模板2.1.2、聊天提示模板2.1.3、…

避雷针厂家防雷接地解决方案

您是否担心您的建筑物或设施会受到雷电的侵袭?您是否想要一种高效、可靠、经济的避雷解决方案?如果是的话,那么您一定要了解我们的提前放电避雷针DK8-BX10,这是一种采用先进技术和优质材料制造的智能化避雷系统,可以为…

MySQL数据库及安装MySQL

文章目录 一.数据库的基本概念1.数据2.表3.数据库4.数据库管理系统(DBMS)4.1DBMS主要包括以下功能 5.数据库系统原理5.1DBMS的工作模式 二.数据库的发展史1.第一代数据库…

Python微实践 - 布莱切利庄园的秘密

二战时期,英国数学家、计算机科学之父Alan Turing在布莱切利庄园成功破译了德军密码,为赢得世界反法西斯战争的胜利做出了重大贡献。为了表达对前辈先贤的敬意,本微实践取名为“布莱切利庄园的秘密”。 本文引用自作者编写的下述图书; 本文允…

西安邮电大学-2020计算机科学与技术培养方案【笔记】

2020计算机科学与技术培养方案【笔记】 前言说明2020计算机科学与技术培养方案培养目标培养要求课程设置与学分分布1. 通识教育类 67 学分 √(1) 公共基础课程 40 学分1) 必修课 38 学分2) 选修课 2 学分 (2) 自然科学基础课程 20 学分1) 必修课 20 学分2) 选修课 0 学分 (3) 综…

算法训练营第三十二天||122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

122.买卖股票的最佳时机 本题首先要清楚两点: 只有一只股票!当前只有买股票或者卖股票的操作 想获得利润至少要两天为一个交易单元。 #贪心算法 这道题目可能我们只会想,选一个低的买入,再选个高的卖,再选一个低的…

7-2 九牛一毛

7-2 九牛一毛 分数 5 全屏浏览题目 切换布局 作者 陈越 单位 浙江大学 这是一道脑筋急转弯题:猪肉一斤 15 元,鸡肉一斤 20 元,那么一毛钱能买多少头牛? 答案是:9 —— 因为“九牛一毛”。 本题就请你按照这个逻辑…

百度地图 —— 给InfoWindow文本添加点击事件

前言: 需求描述:点击Marker标记出现infoWindow文本框,点击文本框中的红色框中的文字,出现侧边栏 代码实现:

js-二维子矩阵的和

// 给定一个二维矩阵 matrix,以下类型的多个请求: // 计算其子矩形范围内元素的总和,该子矩阵的左上角为(row1, col1) ,右下角为(row2, col2) 。// 实现 NumMatrix 类:// NumMatrix(int[][] matrix) 给定整数矩阵 matr…

刷题日记07《回溯算法》

题目描述 力扣https://leetcode.cn/problems/VvJkup/ 给定一个不含重复数字的整数数组 nums ,返回其 所有可能的全排列 。可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2…

STM32 Proteus仿真ILI9341显示电桥电子秤重量测量差分放大电路 -0062

STM32 Proteus仿真ILI9341显示电桥电子秤重量测量差分放大电路 -0062 Proteus仿真小实验: STM32 Proteus仿真ILI9341显示电桥电子秤重量测量差分放大电路 -0062 功能: 硬件组成:STM32F103R6单片机 ILI9341TFT显示器4个电位器组成的电桥电…

好用的文献阅读插件(Easy Scholar、EasyPubMedicine、Sci-Hub X Now!)

目录 一、Easy Scholar 二、EasyPubMedicine 一、Easy Scholar Easy Scholar:自动显示期刊等级,帮助筛选优质论文。 安装: 点击浏览器右上角的“。。。”,选择“扩展”。 点击打开加载项 在浏览器的扩展商店中搜索“easy sch…

MyBatis 中如何使用缓存

MyBatis 中如何使用缓存 MyBatis 是一个基于 Java 的持久层框架,它提供了多种方式来使用缓存,包括一级缓存和二级缓存。本文将介绍 MyBatis 中常见的缓存使用方式及其使用方法。 1. 一级缓存 MyBatis 中的一级缓存是指 SqlSession 的缓存,它…

Android 圆环统计图(带外延折线可点击)

需求先看UI效果图吧 看到这肯定去找轮子,找了半天,没找到相似的,大部分搜到的都是点击外凸,而这个UI是内凸,其实外凸内凸区别还不小,没找到一样的,于是乎,和iOS说好了要不就放弃吧&…

途乐证券-充电性能最高提升3.8倍,固态电池有新突破!

固态电池当时处于起步阶段,工业化仍需时刻。组织预计2030年商场空间有望达200亿元。 固态电池技能继续取得突破发展 过去10年,液态锂离子电池的能量密度现已提高了2倍~3倍,现在现已挨近理论上限。而全固态电池运用固体电解质替代了传统锂离子…

科技资讯|苹果Vision Pro预计2024年末全球发售

据彭博社记者古尔曼消息,苹果首款头显Vision Pro计划于2024年初在美国市场指定店铺进行开售,这些商店将会有专属区域用于产品演示,配备座位、配件和测量尺寸的工具等。知情人士透露,将有270家美国的苹果商店会销售Vision Pro&…

简述MySQL体系结构以及安装部署MySQL

目录 一、简述MySQL体系结构 1、连接层: 2、SQL层: 3、存储引擎层: 4、物理文件层: 5、一条SQL语句执行过程: 二、安装部署MySQL(使用yum以及通用二进制方式) 1、前期准备 1.1、关闭防火…