前言
提示:本系列本章针对STM32F207,基于Cubemx和Keil进行程序开发,笔者利用本系列文章对开发过程进行记录和总结。该系列文章仅供参考,欢迎互相学习交流。
本系列文章并不是一步一操作的傻瓜式教程,而更希望是一个向导,引导读者去思考去开发。做为一个开发者应该是在思考中自我提高,而不是机械性地重复。
不必害怕未知,无需恐惧犯错,做一个Creator!
其中,本文主要对STM32CubeMX的基本使用进行介绍。
目录
- 前言
- 一、为什么用STM32CubeMX?
- 1.主流
- 2.便捷
- 3.规范
- 二、HAL库介绍
- 1.STM32CubeMX介绍
- 2.HAL库和标准库区别
- 三、STM32CubeMX基本使用
- 1.STM32CubeMX安装
- 2.基本配置
- 工程创建
- 基本配置
- 工程管理
- 总结
一、为什么用STM32CubeMX?
1.主流
随着四,五年前ST公司逐渐停止了对标准外设库的更新和维护,转向HAL库(Hardware Abstraction Layer)和LL库。
笔者认为,程序开发的发展一定是朝着更加便捷和规范的方向发展。编写程序就像使用工具,我们通过使用提高自己使用工具的能力和熟练度,这是我们在改变自己;同样,也有一些人在不断地开发工具的。选择更加便捷有效的工具,便从一开始就省去了部分工作量。
为了从第一步就更加贴合主流,建议使用STM32CubeMX。
2.便捷
STM32CubeMX是一个图形化的软件配置工具,通过图形化的配置生成STM32初始化代码,极大地提高了程序开发的便捷性。例如笔者用过的:Xilinx的VIVADO以及Qt Company开发的跨平台QT,都有利用图形化的软件配置工具来生成部分代码。
如果你一直使用标准外设库进行开发,为了便捷和效率,建议使用STM32CubeMX。
3.规范
STM32CubeMX另外一个容易被忽视的点就是良好的规范性,程序的规范性对后期的移值和维护等方面都是决定性的影响因素。在STM32CubeMX中生成的代码指明了哪些地方是用户编写代码区,编写哪些代码。
如果你想让自己开发的程序在今后更加有价值,建议使用STM32CubeMX。
二、HAL库介绍
1.STM32CubeMX介绍
STM32CubeMX是ST公司推出的一种自动创建单片机工程及初始化代码的工具,适用于旗下所有STM32系列产品。此软件可以作为eclipse插件形式安装,也可以单独运行,需要安装JAVA运行环境。STM32CubeMX是一个图形化的工具,用以配置和初始化C代码生成器以及自动生成开发初期关于芯片相关的一些初始化代码。其特性如下:
-
直观的选择 STM32 微控制器。
-
微控制器图形化配置:
-
C代码工程生成器覆盖了STM32 微控制器初始化编译软件,如IAR、KEIL、GCC。
-
可独立使用或作为 Eclipse 插件使用。
2.HAL库和标准库区别
- 标准库实现功能需要配置相应的寄存器,HAL库的函数接口甚至可能是功能的集合。
- 句柄handle的存在。句柄通常指向结构体,并作为一个全局变量存在。
- MSP函数和Callback函数的存在。极大增加程序可移植性
三、STM32CubeMX基本使用
1.STM32CubeMX安装
安装教程推荐参考下方链接的文章,该博主撰写了一个HAL库开发教程的系列文章,十分有用,笔者受益其中。也正是在此基础上,笔者冒昧狗尾续貂,加一些补充和自己的理解。
STM32CubeMX安装教程链接.
2.基本配置
工程创建
通过内核芯片的选择,创建相应的工程文件。
基本配置
对引脚及基本功能进行配置,对时钟系统进行配置。
其中,时钟系统可参考下方链接
STM32时钟系统介绍链接.
配置时钟系统我们首要思考的是:我们需要怎样的时钟系统,而不是如何配置时钟系统。
工程管理
工程管理设置推荐图中所示配置,实现更快编译和更简洁的文件系统。
点击图中“GENERATE CODE”生成Keil工程文件
总结
本文主要介绍:
为什么用STM32CubeMX?
——为什么选
HAL库介绍。
——用什么做
三、STM32CubeMX基本使用。
——怎么做
想清楚这些,再让我们一起开始后面的故事。。。
提示:若有错误不足,欢迎批评指正。该系列文章仅供参考,欢迎互相学习交流。
感谢你的阅读,期待你的关注收藏点赞!