夜深人静学32系列1——初识STM32

一些我想讲的话

首先我来介绍一下自己的一些经历吧:我入行嵌入式这一行大概有一年左右的时间了吧,期间最开始学习的是51单片机,个人呢感觉51单片机还是对新手挺友好的,我之前学习的过程也算是顺利吧,之后也是开始接触了一些STM32,后面发现,自己需要学习的内容还有很多,陆陆续续的也在网上寻找了一些STM32相关的视频学习,不过发现学习的过程中会有遗忘,渐渐的,我对STM32的学习好像越来越慢了。于是,我决定创建《夜深人静学32系列》内容,希望以此来记录我学习STM32的学习工程,同时也是为了督促自己学习,让自己有不断的提升,不断的进步。
我先在这里声明:我是一个小菜鸟,我需要学的东西还很多,可能我写的内容会存在一些问题,希望大家在看到问题的时候,及时指出,评论,我们一起交流学习。毕竟一个人可以走的很快,但一群人才可以走的更远!

补充

我在做这个系列的内容会参照正点原子官方提供的学习视频,大家也可以到网上去看看,毕竟原子哥还是很强的。使用的是HAL库开发,大概率会用到CubeMX这个软件,开发的板子不出意外的话是STM32F411RCT6的板子,但也有可能是STM32H7B3I-DK探索套件(基于STMicroelectronics Arm® Cortex®-M7内核的STM32H7B3LIH6QU微控制器而设计的一个完整的演示和开发平台。),然后的话就没什么了,我们开始学习吧。

初识STM32

什么是STM32?

关于什么是STM32?知乎是这样告诉我的:

对于STM32,从字面意思上来理解,ST是意法半导体,M是Microelectronics的缩写,其中32表示的是32位,那么整合起来理解就是:STM32就是指的ST公司开发的32位微控制器。

大概就是这个意思:STM32就是指的ST公司开发的32位微控制器

STM32命名规则

对于F4的板子:
在这里插入图片描述
以我手上的STM32F411RCT6为例,那么对应的就是:
STM32基础型高性能64引脚256KBFLASH的OFP封装芯片。

对于H7的板子:
在这里插入图片描述在这里插入图片描述
对应到STM32H7B3LIH6QU的板子就是:
STM32带高数加速器的高性能225引脚1.4MBRAM空间2MBFlash具有开关模式电源的BGA封装芯片

Cortex—M内核

什么是Cortex—M内核?

在这里插入图片描述
Cortex-M是爱特梅尔公司发布的全新 ARM ® ARM D20 微控制器 ,采用的是全球微控制器标准。

Cortex—M内核与芯片之间的关系

在这里插入图片描述MCU厂商,经ARM公司授权,添加不同的外设 ,做出不同型号的芯片,以满足用户的各种要求。

Cortex—M内核的特点

Cortex—M内核是基于ARM架构实现的,时钟频率相对于其他系列的内核而言更低,可以实现低功耗,低成本,高性能的要求,主要运用于工业控制,传感器,消费电子,家用电器,医疗器械灯行业。

初识HAL库

CMSIS&HAL库

CMSIS (微控制器软件接口标准):Cortex Microcontroller Software Interface Standard,是由ARM和与其合作的芯片厂商、软件工具厂商,共同制定的标准。而我们说的HAL库就是ST为了方便用户(遵循CMSIS标准)开发提供的硬件抽象层代码库,用户在使用的过程中,不需要再像51单片机一样对各种各样的寄存器进行配置,而是调用一些库函数对寄存器进行配置,完成对各种硬件的初始化,实现一些功能,极大的减小和STM32的开发难度,为用户提供便捷,保护我们的头发。

除了HAL库开发之外,还有标准库和LL库以及寄存器开发等方式,他们具有以下特点:

类型特点
寄存器开发代码效率高,时间效率低下
标准库开发支持F0~F4/L1系列,目前已经停止维护
HAL库开发全系列兼容、ST目前主推的库、兼容性、易移植性、效率低
LL库开发全系列兼容、与HAL库捆绑发布、轻量级、效率高、不匹配分复杂外设

HAL库文件格式介绍

在这里插入图片描述

HAL库接口函数和变量命名规则

在这里插入图片描述

HAL库对寄存器位操作的相关宏定义

在这里插入图片描述

HAL库回调函数

在这里插入图片描述
其中:weak修饰的函数称为弱定义函数,在用户重新定义实现后,再次调用此函数,将调用的用户编写的函数,如果用户没定义该函数,则编译器自动调用weak修饰ide弱函数。

使用HAL库开发时需要注意的几个点

1,使用HAL库出现问题时,需要查阅参考手册,确定问题来源
2,尽量不要因为自己的一些使用习惯去修改HAL库的源文件,避免出现问题
4,由于HAL库文件属于硬件抽象层文件,代码经过层层封装,所以代码效率会更低一些。

总结

本期我们介绍了什么是STM32,Cortex—M内核,以及HAL库的一些相关概念,大家看完之后可能觉得有点空泛,我们也不用过多的深究,做一个初步的了解就好,有不懂的再来查阅就行,毕竟重点是后面的代码编写。本篇中的图片也是大部分来之正点原子官方提供的资料,我只是一个搬运工…………
最后,总结一下STM32HAL库开发的文件结构分布
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想写代码的我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值