[STM32教程]01如何开始准备hal库的开发环境

文章目录

  • 概述
  • 1、认识硬件环境
    • 1.1 ARM简介
    • 1.2 STM32简介
  • 2. 软件开发环境准备
    • 2.1 Keil MDK安装
    • 2.2 安装STM32Cube MX
    • 2.3 安装STM32 HAL库
    • 2.4 St-Link V2使用
  • 总结


概述

本文介绍如何准备stm32f103的hal库工程开发环境,包括cubemx安装、keil mdk安装、stm32 hal库安装、hal库的点灯程序的实现等。


1、认识硬件环境

1.1 ARM简介

·ARM既指ARM公司,也指ARM处理器内核。
·ARM公司是全球领先的半导体知识产权(IP)提供商,全世界超过95%的智能手机和平板电脑都采用ARM架构。
·ARM公司设计ARM内核,半导体厂商完善内核周边电路并生产芯片。

1.2 STM32简介

·STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器。
·STM32常应用在嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等。
·STM32功能强大、性能优异、片上资源丰富、功耗低,是一款经典的嵌入式微控制器。

2. 软件开发环境准备

基于HAL库的开发需要在Keil MDK与STM32Cube MX上进行。
在这里插入图片描述

2.1 Keil MDK安装

第一步:下载Keil MDK。
打开Keil MDK官方网站(https://www2.keil.com/mdk5)根据网站上的指引下载MDK安装的exe文件,在正式下载之前需要根据网站提示注册用户并填写必要的信息。
第二步:安装Keil MDK 5。
以管理员身份运行上一步下载的MDK安装程序,勾选同意用户协议(如下图)。
在这里插入图片描述
然后,选择Keil5的安装路径并填写用户信息,如接下来的两张图。
在这里插入图片描述
在这里插入图片描述
随后进入Keil5安装进度条显示界面,等待安装完成点击“Finish”按钮,此后会自动弹出在线安装支持包的界面(如图115),因为我们会后续手动配置,所以直接关闭即可。

2.2 安装STM32Cube MX

安装STM32CubeMX必须具备的条件
(1)JRE(Java Runtime Environment):JAVA运行环境。
(2)STM32CubeMX软件:生成初始化代码的地方。
(3)HAL库 PACK包:F0、F1、F3、H7等Cortex内核,都需要对应的PACK包安装。
第一步:安装JAVA JRE
64位JRE官网下载链接: (https://www.java.com/en/download/manual.jsp)
(1)勾选“更改目标文件夹”,点击“安装”。
在这里插入图片描述
(2)点击“更改(C)…”修改目标路径地址(也可以不用修改)。
在这里插入图片描述
(3)等待安装完成(20s左右的时间),关闭界面。
在这里插入图片描述
第二步:安装STM32CubeMX
(1)官网下载安装包:www.st.com/stm32cubemx,选择“Get Software”。
在这里插入图片描述
(2)选择对应的STM32CubeMX版本信息,本用例使用STM32CubeMX-5.3.0版本实测。
备注:不想在官网下可以在百度云盘下载如下提供STM32CubeMX(V6.1.1)云盘下载地址:
百度网盘链接: https://pan.baidu.com/s/1hsIibEmsB91xFclJd-YTYA?pwd=jauj
提取码:jauj
(3)打开STM32CubeMX-5.3.0安装包,点击“Next”。
在这里插入图片描述
(4)同意协议“I accept the terms of this license agreement.”,点击“Next”。
在这里插入图片描述
(5) 勾选第一个即可,第二个选项是是否同意ST公司收集你的个人使用信息等。
在这里插入图片描述(6)选择要安装的目录,点击“Next”。
在这里插入图片描述
(7)弹窗 Warning,点Yes即可。
备注:这句话意思是安装本软件可能会与文件夹之前文件冲突,导致文件夹之前文件丢失是否继续 点Yes继续即可。
在这里插入图片描述
(8) 默认设置,点击“Next”即可。
在这里插入图片描述

(9)等待安装完成,点击“Next”。
在这里插入图片描述

(10)安装完成后,点击Done,即可完成安装。
在这里插入图片描述

2.3 安装STM32 HAL库

STM32 HAL固件库是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便的实现跨STM32产品的最大可移植性。HAL库的推出,可以说ST也慢慢的抛弃了原来的标准固件库,这也使得很多老用户不满。但是HAL库推出的同时,也加入了很多第三方的中间件,有RTOS,USB,TCP / IP和图形等等。

和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。

并且从2016年开始,ST公司就逐渐停止了对标准固件库的更新,转而倾向于HAL固件库和 Low-layer底层库的更新,停止标准库更新,也就表示了以后使用STM32CubeMX配置HAL/LL库是主流配置环境.

HAL库,有在线安装、离线安装两种方式。这里实测在线安装方式(离线安装方式请自行lookup)。

(1)打开STM32CubeMX 软件,点击右上角“Help”,选择“Manage embedded saftware packages”
在这里插入图片描述
(2)如下所示的选择型界面,勾选所需的HAL库,本教程开发的STM32F103C8t开发板作为演示,选择的则为STM32F1 —>STM32Cube MCU Package for STM32F1 Series 1.8.5版本。
在这里插入图片描述

(3)安装完毕后,点击右下角的Close即可。

2.4 St-Link V2使用

使用St-Link V2之前需要安装驱动,不然电脑无法操作单片机。驱动安装方法参考文章:http://t.csdn.cn/HnLK8
安装好驱动后需要用杜邦线按照以下规定来连接。
st-link与stm32板相连,需要遵照:

  1. SWDIO与TMS引脚相连
  2. GND与GND脚相连
  3. SWCLK与TCK引脚相连
  4. 3.3V VCC与板子上的3.3V引脚相连在这里插入图片描述

总结

以上就是构建STM32 HAL库开发环境的步骤,下一篇文章将介绍如何使用刚刚构建的环境新建一个模板工程。

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

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

相关文章

Linux下如何部署Nuxt项目(二)

Linux下如何部署Nuxt项目(一)_小鸟哗啦啦的博客-CSDN博客,书接上回,以实际场景开始。 请认真看完这篇文章,还不会部署Nuxt,我直接拿弹弓打你们家玻璃! 一、nuxt的配置检查 服务端渲染的应用,应该是先编译构…

【从零开始学习JAVA | 第二十九篇】Stream流

目录 前言: Stram流: 设计目标: 使用步骤: 1.先得到一条Stream流,并把数据放上去。 2.利用Stream流中的各种API进行操作。 使用Stream流的注意事项: 总结: 前言: 本文我们将学习Stream流…

vue3 前端编码规范

prettier 配置 1. vscode 安装prettier 的 插件 2. 新建 .prettierrc 文件 {"semi": false, // 不尾随分号"singleQuote": true, // 使用单引号"trailingComma": "none" // 多行逗号分隔的语法,最后一行不加逗号 }eslin…

《远见》阅读笔记

不同的环境,不同的职业,职业生涯的建议并没有什么不同 找到热爱的工作,建立热爱的生活 如何思考职业远景 如何分配时间 如何扩张人脉 职业生涯决策框架 三个部分 职场思维、框架、工具实用性建议和案例现实生活为基础,平衡职…

Animboat Application Framework

SpringBoot的服务将部署在云端 管理云端数据和处理分布式的业务请求 本地基础服务将作为云端和终端中间媒介, 与局域网内其它dcc 插件或者app运行实例进行通信, 同时本地基础服务将负责本地数据的管理。 每个AppInstance都会有自己的FlaskSvr用于与Loc…

Acrel-1000DP分布式光伏系统在重工企业的应用

安科瑞 崔丽洁 摘 要:分布式光伏发电特指在用户场地附近建设,运行方式以用户侧自发自用、余电上网,且在配电系统平衡调节为特征的光伏发电设施,是一种新型的、具有广阔发展前景的发电和能源综合利用方式,它倡导就近发电…

【云原生】Docker网络Overlay搭建Consul实现跨主机通信

目录 1.overlay网络是什么? 实现overlay环境 1.overlay网络是什么? 在Docker中,Overlay网络是一种容器网络驱动程序,它允许在多个Docker主机上创建一个虚拟网络,使得容器可以通过这个网络相互通信。 Overlay网络使用…

字符串函数及内存函数C语言

字符函数及内存函数 一.字符串函数函数1.strlen函数2.strcpy函数3.strcat函数4.strcmp函数5.strncpy函数6.strncat函数7.strncmp函数8.strstr函数9.strtok函数10.strerror函数 二.内存函数1.memcpy函数2.memmove函数3.memcpy函数4.memset函数 一.字符串函数函数 1.strlen函数 …

【程序员必须掌握哪些算法?】

一个程序员一生中可能会邂逅各种各样的算法,但总有那么几种,是作为一个程序员一定会遇见且大概率需要掌握的算法。今天就来聊聊这些十分重要的“必抓!”算法吧~ 常见算法介绍 本文所介绍的排序算法均以升序为例。 文章目录 常见算法介绍一 …

P106-100组A卡(R5 240)指南

P106-100组A卡(R5 240)指南 不建议小白尝试 不建议小白尝试 不建议小白尝试文章目录 P106-100组A卡(R5 240)指南资料合集硬件软件基础卸载所有原驱动安装驱动修改注册表自动调用——只改一个注册表手动调用——改两个注册表 劝退…

Qt中QMainWindow的相关介绍

目录 菜单栏 工具栏 状态栏: 停靠窗口: QMainWindow 是标准基础窗口中结构最复杂的窗口,其组成如下: 提供了菜单栏 , 工具栏 , 状态栏 , 停靠窗口 菜单栏:只能有一个,位于窗口的最上方 工具栏:可以有多…

攻不下dfs不参加比赛(十四)

标题 为什么练dfs题目为什么练dfs 相信学过数据结构的朋友都知道dfs(深度优先搜索)是里面相当重要的一种搜索算法,可能直接说大家感受不到有条件的大家可以去看看一些算法比赛。这些比赛中每一届或多或少都会牵扯到dfs,可能提到dfs大家都知道但是我们为了避免眼高手低有的东…