STM32(HAL库) CubeMX+Keil5 建立工程

STM32(HAL库) CubeMX+Keil5 建立工程

目标选择

  • 菜单栏
    • File
      • 新建工程
      • 打开工程
      • 退出软件
    • Window
      • 输出窗口的开启
      • 软件字体设置
    • Help
      • 软件帮助文档
      • 检查软件更新
      • 管理MCU
  • 已存在工程(Existing Projects)
    • 最近打开过的工程(Recent Opened Project)
    • 打开其他已经存在的工程(Other Project)
  • 新建工程(New Project)
    • 基于芯片(Start My Project from MCU)
    • 基于ST官方开发板(Start My Project form ST Board)
    • 交叉选型
      • 在STM32的产品线中筛选出一个芯片型号,这个芯片型号与工程师曾经使用过的芯片型号性能和资源等方面最为接近,便于工程师转换到STM32平台进行项目开发。
  • 软件管理(Manage software installation)
    • 检查软件更新以及MCU固件包的更新(Check for STM32CubeMX and embedded software packages updates)
    • 安装/卸载MCU固件包(Install or remove embedded software packages)

在这里插入图片描述

  • 选择基于芯片的方式新建工程,进入芯片/开发板选择界面,选择指定的芯片或开发板型号,或者按照用户的需求,比如处理器内核,产品存储空间的大小,片上外设资源等条件,筛选出满足用户要求的芯片型号或开发板型号。
  • 标签页切换
    • 芯片选择器(MCU/MPU Selector)
      • 用于选择芯片型号
    • 开发板选择器 (Board Selector)
      • 用于使用ST官方的开发板
    • 交叉选择器 (Cross Selector)
      • 用于初次使用STM32微控制器的工程师进行硬件平台的转换
  • 筛选器
    • 直接输入芯片型号或开发板型号进行筛选
    • 利用处理器内核、产品系列、存储空间大小以及片上外设资源等组合条件进行筛选
  • 芯片文档,方便用户快速掌握芯片基本功能
    • 芯片特性
    • 功能框图
    • 开发文档
    • 数据手册
    • 购买途径
  • 芯片/开发板列表框

在这里插入图片描述

  • 这里基于STM32F407ZGT6,在芯片型号出输入STM32F407ZGT6,并在芯片/开发板列表框选择对应芯片,双击,点击右上角Start Project即可建立工程。

在这里插入图片描述

引脚分配

  • 导航栏 用于切换CubeMX的配置操作过程
    • Home 返回到启动界面
    • STM32F411RETx 返回到目标选择阶段
  • 生成代码(GENERATE CODE)
    • 当用户完成CubeMX的所有配置后,点击GENERATE CODE就可以生成初始化代码以及工程框架。
  • 功能标签页
    • 引脚分配及外设和中间件配置(Pinout&Configuration)
    • 系统时钟配置(Clock Configuration)
    • 工程设置 (Project Manager)
    • 系统功耗估算 (Tools)
      • 当用户的应用与低功耗相关时,可以进行Tools标签页的设置,而一般的应用只需要进行前三个功能标签页设置即可。

在这里插入图片描述

  • Pinout&Configuration
    • 类别栏,用于外设及中间件配置
    • 芯片引脚图,用于引脚分配
      • 在芯片引脚图上用不同的颜色,来代表了引脚的功能,比如电源用黄色来表示,复位引脚和BOOT引脚用卡其色来表示,GPIO引脚用灰色来表示(复位状态)
    • 放大/缩小/旋转缩略图

在这里插入图片描述

  • 查找引脚
    • 用引脚搜索框来快速定位我们所需要进行分配的引脚。
    • 在引脚搜索框输入要分配的引脚名称(例如PA5),对应引脚将会闪烁.

在这里插入图片描述

  • 选择引脚功能
    • 单击PA5将弹出PA5引脚所用有的引脚功能,选择GPIO_Output.
    • 此时引脚将变为亮绿色并且引脚的标签将显示为GPIO_Output.

在这里插入图片描述

外设配置

  • System Core:用于配置GPIO、时钟源、中断系统以及其他系统相关的外设
  • Analog:用于配置模数转换器(ADC)和数模转换器(DAC)
  • Timers:用于配置定时器和实时时钟外设
  • Connectivity:用于配置I2C、SPI和UART等连接外设
  • Multimedia:用于配置I2S等音频数据传输外设
  • Computing:用于配置CRC校验外设
  • Middleware:用于配置RTOS和GUI等中间件

在这里插入图片描述

  • 配置时钟模式
    • 在System Core找到RCC,点击RCC进入时钟模式配置窗口。
      • 在配置窗口的上方有两个箭头,可以展开或收起配置窗口
    • 时钟模式的配置一共有三种选项
      • Disable:内部时钟(HSI和LSI 片内的RC振荡器提供时钟信号)
        • 一般存在5%左右的误差,一般不选用
      • BYPASS Clock Source:旁路时钟 (外部的时钟信号作为时钟源)
      • Crystal/Ceramic Resonator:晶振/陶瓷振荡器 (外部的振荡电路产生时钟信号)
    • 本次不使用实时时钟模块,故对于LSE(32.768KHZ)不进行设置。
    • 完成时钟模式配置之后,对应的引脚将变为亮绿色,同时引脚的功能将设置为OSC_IN和OSC_OUT

在这里插入图片描述

  • 配置调试接口
    • 在System Core找到SYS,点击SYS进入调试配置窗口。
    • 使用Serial Wire(串行调试接口 依据使用的仿真器情况选择)
    • 此时对应的调试接口引脚,将变为亮绿色,引脚功能将变为SWDIO和SWCLK,作为调试接口的数据引脚和时钟引脚

在这里插入图片描述

  • 配置GPIO
    • 在System Core找到GPIO,点击GPIO进入GPIO配置窗口。
    • 选择GPIO标签页,在出现的GPIO列表中选择PA5,单击PA5,将进入PA5引脚配置窗口。

在这里插入图片描述

  • 配置GPIO参数
    • 初始电平 (GPIO output level)
    • 引脚模式 (GPIO mode)
    • 上/下拉电阻 (GPIO Pull-up/Pull-down)
    • 引脚速度 (Maximum output speed)
    • 引脚名称 (User Label)

在这里插入图片描述

时钟配置

  • Clock Configuration
    • 在这个标签页中以时钟树的形式完整地展示了STM32微控制器的时钟系统,方便用户快速了解STM32微控制器的时钟系统。

在这里插入图片描述

  • 时钟源模块
    • 外部低速时钟LSE:32.768KHz
      • 主要提供给片内的RTC实时时钟
      • 由于在之前的外设配置中我们没有配置LSE,因此这里显示灰色。
    • 内部低速时钟LSI:32KHz
      • 主要提供给片内的RTC实时时钟模块和看门狗模块
    • 内部高速时钟HSI:16MHz
      • 主要提供给系统时钟使用
    • 外部高速时钟HSE:
      • 振荡模式:4MHz~26MHz晶振
      • 旁路模式:1MHz~50MHz信号
        • 直接接入外部的1MHz~50MHz时钟信号作为时钟源
      • 主要提供给系统时钟使用

在这里插入图片描述

  • 时钟配置步骤
    • 修改时钟源频率
      • 选择外部高速(HSE)时钟作为时钟源,并修改时钟源频率
    • 选择锁相环输入时钟
      • 选择锁相环输入时钟为HSE
    • 选择系统时钟源
      • 选择PLLCLK为系统时钟源
        • 锁相环输出的时钟精度更高,稳定性更好
    • 设置HCLK时钟频率
      • 一般设置为系统最高支持的主频

在这里插入图片描述

工程配置

  • Project Manager
    • Project 工程管理
    • Code Generator 代码生成
    • Advanced Settings 高级设置

在这里插入图片描述

  • 工程管理
    • 工程名称
    • 工程路径
      • 完成工程名称和工程路径设置后,将自动在CubeMX文件夹下新建一个名为Demo的文件夹
    • 选择IDE
      • MDK-ARM V5(Keil 5)

在这里插入图片描述

在这里插入图片描述

  • 代码生成设置
    • 库函数的设置
      • 复制所有的库到用户的工程中
        • 需要经常查阅库函数的源代码,故需要复制所有库
      • 复制必要的库到用户的工程中
      • 不进行库的复制,而是将库作为引用参考
    • 生成文件设置
      • 片内外设初始化将采用独立的.c/.h文件完成
    • HAL库设置
      • 将所有没有使用的引脚设置为模拟功能,可以优化系统功耗
      • 使能断言语句,提升程序健壮性,同时代码量也会增加
    • 模板设置

在这里插入图片描述

  • 高级设置
    • 对片内的外设所使用的库函数进行选择,可以选择HAL库或者LL库,默认选择HAL库
    • 在Function Name中列出了由CubeMX所生成的外设初始化函数的名称,比如MX_GPIO_Init就是对GPIO进行初始化的函数
    • 如果用户不想使用由CubeMX生成的初始化函数,可以在Not Generate Function Call中勾选对应的函数。(是否使用CubeMX所生成外设初始化函数)

在这里插入图片描述

  • 生成工程
    • 点击GENERATE CODE就可以生成基于MDK-ARM集成开发环境的工程
    • 正确生成工程之后,将弹出一个对话框
      • 如果工程文件未打开则选择“Open Project”,之后就会转到Keil5
      • 如果工程已打开则选择“Close”

在这里插入图片描述

参考的成电应电科协 觉得老师讲得很好 就记下来了

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

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

相关文章

2024年值得关注的10种自动化测试趋势

超级自动化测试这是利用人工智能(AI)和机器学习(ML)来自动化测试任务。超级自动化测试可以帮助减少手动测试的需求,提高测试的效率,并在开发生命周期的早期发现缺陷。 TestOps集成TestOps是将DevOps实践扩…

PyPDF2 3.0.0更新,一些函数被弃用,需要重新写

1.PdfFileWriter is deprecated and was removed in PyPDF2 3.0.0. Use PdfWriter instead. 这错误表明你正在使用的 PyPDF2 版本中已经移除了 PdfFileWriter,并在版本 3.0.0 中被替代为 PdfWriter。这是因为在 PyPDF2 的更新中,一些 API 被重新组织和更…

中霖教育:专业不对口,能考会计师吗?

学的不是会计专业,专业不对口,能不能考会计师? 从学历要求来看,考会计师并无硬性规定必须具备哪个专业的学历。所以只要符合报考条件,非会计专业的人也可以报考会计师。 除了基本条件外,报名参加中级会计考试的人员…

Redis系列-15.Redis的IO多路复用原理解析

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理、分布式技术原理、数据库技术🔥如果感觉博主的文章还不错的…

[DM8] 达梦8配置兼容Oracle

查看版本信息 select *,id_code from v$version; 查询解释: DM Database Server 64 V8 1-1-190-21.03.12-136419-ENT 64 版本位数标识,64表示为64位版本,无64则表示为32位版本 V8 大版本号,目前主要是V7、V8 1-1-190…

智慧医院之定位导航解决方案

移动端LBS应用 通过绘制院方各楼栋各层平面图,利用无线/蓝牙技术可对终端进行实时定位,方便病人、家属等就医,提高就医体验,减少工作人员工作量,减少医患冲突,打造智慧医院。 移动端的LBS位置应用,可分为医院的室内地图展现、室内地图搜索、室内导航、室内定位、室内位…

【JaveWeb教程】(18) MySQL数据库开发之 MySQL数据库设计-DDL 如何查询、创建、使用、删除数据库数据表 详细代码示例讲解

目录 2. 数据库设计-DDL2.1 项目开发流程2.2 数据库操作2.2.1 查询数据库2.2.2 创建数据库2.2.3 使用数据库2.2.4 删除数据库 2.3 图形化工具2.3.1 介绍2.3.2 安装2.3.3 使用2.2.3.1 连接数据库2.2.3.2 操作数据库 2.3 表操作2.3.1 创建2.3.1.1 语法2.3.1.2 约束2.3.1.3 数据类…

Qt QComboBox组合框控件

文章目录 1 属性和方法1.1 文本1.2 图标1.3 插入和删除1.4 信号和槽 2 实例2.1 布局2.2 代码实现 Qt中的组合框是集按钮和下拉列表体的控件,,它占用的屏幕空间很小,对应的类是QComboBox 1 属性和方法 QComboBox有很多属性,完整的…

springboot第46集:Nginx,Sentinel,计算机硬件的介绍

image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png 什么是单点容错率低: 单点容错率低指的是系统中存在某个关键节点,一旦这个节点发生故障或崩…

IDEA中在Java项目中添加Web模块 与配置tomcat服务器

现有项目添加直接走第二步 生成普通新项目 给项目添加框架支持 勾选 Web Application 选项, 点击OK 得到项目目录结构 , 出现web目录结构, 且web目录文件夹出现小蓝点 web或webapp 没有出现小蓝点 说明web配置没有出现或是手动构建的目录结构 , 在IDE关闭或者迁移项目时会出…

【虚拟仪器Labview】习题T1-详解

目录 题目要求思路计时部分详解实现第二个部分:将X*3Y 的的结果 Z与100进行比较。全部完成 题目要求 从前面板输入两个浮点数:X,Y,计算 X*3Y 的的结果 Z,在前面板显示计算结果。并且判断 Z是否小于 100,如果 Z 小于 100,前面板中的…

Java快速排序希尔排序归并排序

快速排序算法 快速排序的原理:选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。一般选择序列的第一个元素。 一次循环:从后往前比较&…

实现复数计算器

复数计算器实现 摘要 本论文描述了一个复数计算器的设计和实现,旨在扩展传统计算器的功能,以支持复数的加法、减法、乘法和除法。通过使用Java编程语言和Swing图形用户界面库,我们创建了一个直观、易于使用的界面,允许用户输入复…

在qemu虚拟机环境下,使用kgdb调试kernel

enable kgdb的情况下,使用qemu启动kernel 1,需要先在内核配置中增加kgdb的支持 2,启动qemu虚拟机时,增加参数-s -S,这两个参数会使得kernel在启动之后遇到的第一个指令等待gdb连接 例子: /qemu-project…

[力扣 Hot100]Day2 字母异位词分组

题目描述 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 出处 思路 这题有点考阅读理解,意思就是把输入数组中的所含字母相同但顺序不同的单词放到同…

一、Sharding-JDBC系列01:整合SpringBoot实现分库分表,读写分离

目录 一、概述 二、案例演示-水平分表 (1)、创建springboot工程 (2)、创建数据库和数据表 (3)、application.yaml配置分片规则 (4)、测试数据插入、查询操作 4.1、插入-控制台SQL日志 4.2、查询-控制台SQL日志 三、案例演示-水平分库 (1)、创建数据库和数据表 (2…

阿里云和AWS之间的应用程序防火墙比较及选择建议!

对于大多数开发人员来说,托管在云中的 Web 应用程序或 REST API 是一种常见方案。但是,并非每个应用程序都具有相同的安全级别。将 Web 应用程序防火墙 (WAF) 添加到 Web 应用程序是提高安全性的有用方法。 在本文中,…

【MySQL】视图,15道常见面试题---含考核思路详细讲解

目录 一 视图 1.1视图是什么 1.2 创建视图 1.3 查看视图(两种) 1.4 修改视图(两种) 1.5 删除视图 二 外连接&内连接&子查询介绍 2.1 外连接 2.2 内连接 2.3 子查询 三 外连接&内连接&子查询案例 3.1 了解表结构与数据 3.2 15道常见面试题 四 思…

linux磁盘总结

什么是page_cache linux读写磁盘,如果都是采用directIO的话,效率太低,所以我们在读写磁盘上加了一层缓存,page_cache。读的话,如果page_cache有的话,就不用向磁盘发出请求。写的话,也直接写入的…

移动神器RAX3000M路由器不刷固件变身家庭云之六(高级应用):设置https

本系列文章: 移动神器RAX3000M路由器变身家庭云之一:开通SSH,安装新软件包 移动神器RAX3000M路由器变身家庭云之二:安装vsftpd 移动神器RAX3000M路由器变身家庭云之三:外网访问家庭云 移动神器RAX3000M路由器变身家庭云…