【STM32F103ZE实验】【实验1】点亮LED

news2024/11/26 18:53:04

STM32CubeMx生成keil工程

步骤1:打开STM32CubeMx, 选择MCU类型
在这里插入图片描述
在这里插入图片描述
步骤2: 设置Debug类型
在这里插入图片描述

步骤3: 选择时钟源

在这里插入图片描述

步骤4: 配置时钟
在这里插入图片描述

步骤5: 配置GPIO控制LED
首先配置PE5
在这里插入图片描述
点击GPIO_Output进行相关配置,如下
在这里插入图片描述
另个PB5的GPIO配置同上

步骤6: 设置工程相关功能
在这里插入图片描述

在这里插入图片描述
步骤7: 点击生成keil工程文件
在这里插入图片描述

Keil工程代码编辑&运行

main函数代码如下

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

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

    /* USER CODE BEGIN 3 */
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_SET);
    HAL_Delay(1000);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_RESET);
    HAL_Delay(500);
  }
  /* USER CODE END 3 */
}

其中

HAL_init:主要是复位外围设备,以及初始化flash接口和systick
SystemClock_Config:主要配置系统时钟
MX_GPIO_Init:主要用于控制LED的GPIO配置

其中如下代码是手动添加代码, 用于控制LED灯闪烁点亮
在这里插入图片描述

注意
system_stm32f1xx.c 文件中的USER_VECT_TAB_ADDRESS要打开,否则STM32CubMX生成的工程文件运行不起来
在这里插入图片描述

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

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

相关文章

如何使用Node.js REPL

目录 1、Nodejs REPL 2、_特殊变量 3、向上箭头键 4、点命令 5、从JavaScript文件运行REPL 1、Nodejs REPL REPL代表Read-Evaluate-Print-Loop,是交互式解释器。 node命令是我们用来运行Node.js脚本的命令: node script.js 如果我们运行node命令…

chatgpt赋能python:Python数据处理中如何选取指定范围的数据

Python数据处理中如何选取指定范围的数据 Python已经成为了数据科学家和工程师的标配,尤其在数据处理和数据分析中,Python具有广泛的应用。在数据处理中,选取指定范围的数据是一个很重要的功能。本文将介绍Python中如何实现指定范围的数据选…

SpringBoot——原理(起步依赖+自动配置(概述和案例))

在Spring家族中提供了很多优秀的框架,所有的框架都是基于同一个基础框架——Spring Framework. 使用spring框架开发麻烦的一批,光是搞依赖和配置就够人喝一壶了。因此在spring4.0版本之后又推出了springboot框架。springboot框架用起来比spring框架简单…

chatgpt赋能python:Python行长度的重要性及最佳实践

Python 行长度的重要性及最佳实践 Python 行长度的重要性 对于一门编程语言而言,行长度是指每一行代码的字符数,Python 也不例外。同时,Python 的行长度限制也是相当明确的,官方建议不要超过 79 个字符,而 PEP 8 规范…

【编译、链接、装载一】预处理、编译、汇编、链接

【编译和链接一】预处理、编译、汇编、链接 一、被隐藏了的过程二、预处理器(Prepressing)——cpp1、预处理指令2、预处理过程3、预处理生成的hello.i文件 三、编译器(Compilation)——cc1、编译指令2、编译的过程3、编译生成的文…

chatgpt赋能python:Python读取Mat文件的完整教程

Python 读取Mat文件的完整教程 在数据科学领域,Matlab(或简称Mat)是最受欢迎的编程语言之一。Matlab可用于数学计算、数据预处理、建模和数据分析。然而,Matlab的开销和许可证成本会限制公司和个人的使用。因此,Pytho…

渗透必学神器:BurpSuite教程(一)

0x00 前言 Burp Suite (简称BP,下同)是用于攻击web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。 从本节开始将为大家陆续带来BP各个模块的使用说明 0x01 中间人攻击 中间人攻击&am…

ChatGPT | Bing | Google Bard | 讯飞星火 | 到底哪家强?实测

最近AIGC战场依然热闹,微软的new bing、Google的Bard、国内的讯飞星火认知大模型,都接连上阵,我们对比ChatGPT一起来看看,我把实际使用测试结果发出,供大家参考。有些测试结果可能会出乎大家的预料哦… 今天我们暂时主…

第十四章 (Set)

一、Set 接口(P518) 1. Set 接口基本介绍 (1)无序(添加和取出的顺序不一致),没有索引。 (2)不允许重复元素,所以最多包含一个 null。 2. Set 接口的常用方法…

阿里云服务器ECS云盘扩容

前言 对于云服务器,相信大多数开发的铁子们都玩过,但是云盘爆满的情况,对于新手或者没有自己运营业务的铁子们,平台给的初始容量也不算小,所以这种情况碰到的概率还是比较小。由于我的服务器应用的复杂度随着业务的发…

ubuntu安装搜狗输入法,图文详解+踩坑解决

搜狗输入法已支持Ubuntu16.04、18.04、19.10、20.04、20.10,本教程系统是基于ubuntu18.04 一、添加中文语言支持 系统设置—>区域和语言—>管理已安装的语言—>在“语言”tab下—>点击“添加或删除语言”。 弹出“已安装语言”窗口,勾选中文…

chatgpt赋能python:Python在SEO领域的优势

Python在SEO领域的优势 Python作为一种高效、灵活的编程语言,已经被广泛应用于多个领域,包括Web应用、数据科学、自然语言处理等。在SEO领域,Python也有其独特的优势。 爬虫 Python强大的爬虫库和框架,如BeautifulSoup、Scrapy…

chatgpt赋能python:Python行列转换教程:如何轻松实现行列转换

Python行列转换教程:如何轻松实现行列转换 在数据处理和分析中,经常需要将行和列进行转换。Python是一种优秀的编程语言,提供了多种方法来实现行列转换。在本教程中,我们将介绍如何使用Python实现行列转换,并提供简单…

《Spring Guides系列学习》guide66 - guide68及小结

要想全面快速学习Spring的内容,最好的方法肯定是先去Spring官网去查阅文档,在Spring官网中找到了适合新手了解的官网Guides,一共68篇,打算全部过一遍,能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gui…

深入了解Golang中的反射机制

目录 反射 反射的分类 值反射 类型反射 运行时反射 编译时反射 接口反射 结构体反射 常用函数 值反射 类型反射 值反射和类型反射的区别 结构体反射 示例代码 反射 反射是指在程序运行时动态地检查和修改对象的能力。在Go语言中,通过反射可以在运行时…

chatgpt赋能python:Python逆序对:什么是逆序对,如何使用Python进行逆序对计算?

Python逆序对&#xff1a;什么是逆序对&#xff0c;如何使用Python进行逆序对计算&#xff1f; 在计算机科学中&#xff0c;逆序对是指在一个数组中&#xff0c;如果存在下标i < j&#xff0c;但是a[i] > a[j]&#xff0c;则a[i]和a[j]构成一个逆序对。逆序对对于理解和…

pthread多线程:传入参数并检查 data race

文章目录 1. 目的2. 给子线程传入参数&#xff1a;万能类型 void*3. data race3.1 什么是 data race3.2 怎样检测 data race 4. data race 的例子4.1 子线程传入同一个 data4.2 使用栈内存 5. 解决 data race 问题5.1 忽视问题&#xff1f;5.2 避开同一个变量的使用5.3 使用互斥…

Office project 2010安装教程

哈喽&#xff0c;大家好。今天一起学习的是project 2010的安装&#xff0c;Microsoft Office project项目管理工具软件&#xff0c;凝集了许多成熟的项目管理现代理论和方法&#xff0c;可以帮助项目管理者实现时间、资源、成本计划、控制。有兴趣的小伙伴也可以来一起试试手。…

每天一道面试题之String str=“i“与 String str=new String(“i”)一样吗?

String str"i"与 String strnew String(“i”)一样吗&#xff1f; 要想知道二者是否一样&#xff0c;我们只需要通过进行比较&#xff0c;为什么不用equals的原因&#xff0c;大家可以认真阅读这篇文章 测试代码如下&#xff1a; public class Test1 {public stati…

chatgpt赋能python:Python选择器:优化你的SEO

Python 选择器&#xff1a;优化你的SEO 介绍 随着搜索引擎优化(SEO)变得越来越重要&#xff0c;Web 开发人员需要采取各种措施来提高网站的搜索排名。其中之一就是通过使用正确的 HTML 标签和优秀的内容来提高搜索引擎爬虫对网站的理解。这时候 Python 选择器就变得尤为重要。…