STM32学习之一:什么是STM32

目录

1.什么是STM32

2.STM32命名规则

3.STM32外设资源

4. STM32的系统架构

5. 从0到1搭建一个STM32工程


学习stm32已经很久了,因为种种原因,也有很久一段时间没接触过stm32了。等我捡起来的时候,发现很多都已经忘记了,重新捡起来吧。

每次谈到stm32如何如何,那么该如何解释什么是stm32呢?

1.什么是STM32

stm32 是ST公司基于ARM Cortex-M内核开发的32位微控制器,它是一个微控制器产品系列的总称。观看stm32的技术参考手册可以发现,stm32有很多子系列:stm32小容量产品,stm32中容量产品、stm32大容量产品和STM32互联型产品;按照功能上划分,又可分为STM32F101xxx,STM32F102xxx,STM32F103xxx系列。

注:

1. 技术参考手册对每种功能模块都分一个章节,详细描述了包含了各个功能模块的内部结构,所有可能的功能描述,以及各种工作模式的使用和寄存器配置等详细信息。因此不论使用何种STM32产品,在编程阶段,都需要参考技术参考手册来完成对STM32的驱动。

数据手册包含了产品的基本配置,如内置Falsh和RAM容量、外设模块的种类和数量等,管教的数量和分配,电气特性,封装信息等。在设计硬件电路时,是非常有帮助的。

技术参考手册(对应STM32微控制器产品)和数据手册(对应不通种类的STM32)涵盖了STM32的所有信息,因此学习STM32,这些手册是少不了的,不仅少不了,还应该多看看,多理解手册内容,这对我们理解STM32功能以及编写代码、或者调试相关项目的时候都是很有帮助的。

在此处附上STM32微控制器的技术参考手册:以及STM32F103xxx中容量产品的数据手册:cd00161566.pdf (st.com),其余产品数据手册可以st.com官网寻找。

2. ARM Cortex-M  是ARM公司设计的ARM内核架构之一,除此之外,还包含A核和R核。

ARM Cortex-A核专注于高效处理多线程和多任务,适用于智能手机、平板电脑等领域。

ARM Cortex-R核专注于实时性和可预测性,适用于汽车电子控制器等需要实时响应的领域。

ARM Cortex-M核专注于低功耗和实时控制,适用于小型嵌入式系统。

参考:https://zhuanlan.zhihu.com/p/665194718

2.STM32命名规则

上面说到STM32有很多种产品,例如STM32F103C8T6等等,他为什么叫这个名字,这个名字代表了什么?翻开技术参考手册第三页,详细解释了STM32系列产品命名规则。

由上图可见,STM32表示基于ARM核心的32位微控制器;

F表示通用类型,103表示增强型,C代表引脚数目,8表示闪存存储器容量,T表示LQFP封装,6表示芯片可以在-40℃~85℃温度范围下工作。

3.STM32外设资源

谈到STM32,离不开其丰富的外设资源,那么STM32都有那些外设,详看下图:

下图来自:哔哩哔哩--江协科技up的STM32课程资料,强推大家看,up讲的非常好

这些外设资源是学习STM32最基础的内容,以后学习过程中要了解到每个外设的功能、内部结构、如何使用等,只有了解这些,才能得心应手的驱动外设,编写代码,实现想要的功能。

注:并不是所有的STM32产品都有这些外设,STM32产品系列不同,片上外设资源也不尽相同,同样的,技术参考手册第4-5页详细说明了各个系列产品所包含的外设。

4. STM32的系统架构

ICode指令总线,DCode数据总线,System系统总线

其中ICode总线和DCode总线主要是用来连接Flash闪存的,(Flash里面存储于的就是我们编写的程序),ICode总线就是用来加载程序指令的。DCode数据总线是用来加载数据的,例如常量和调试数据等。

System系统总线连接到SRAM(存储程序运行时的变量数据)、FSMC

AHB系统总线就是用来挂载各种外设的,AHB表示先进高性能总线,挂载的一般是最基本的或者是性能比较高的外设,比如复位和时钟控制这些最基本的电路。

后面有两个桥接,桥接1和桥接2连接到了APB2和APB1两个外设总线上,APB总线的意思是先进外设总线,用于连接一般的外设。因为AHB和APB的总线协议、总线速度、还有数据传送格式的差异,所以中间需要两个桥接来完成数据的转换和缓存。

AHB的整体性能比APB高一些,其中APB2的性能又比APB1性能高些,了解外设挂载在那个总线上就可以。

DMA主要做数据搬运这种简单但需要反复使用的场景,DMA拥有和CPU一样的总线控制权,用于访问各种外设,当需要DMA进行数据搬运时,外设就会通过请求线发送DMA请求。然后DMA获得总线控制权,访问并转运数据,整个过程不需要CPU参与,使得CPU可以解放出来干其他事情。就相当于一个CPU的小秘书,用于直接读取外设的数据。比如遇到大量数据搬运这种情况,使用CPU来进行搬运太浪费时间了(费时费力,简单的数据搬运可以使用DMA)

5. 从0到1搭建一个STM32工程

本地新建一个Project文件用来存放STM32工程,STM32工程文件较多,可以分几个文件夹存储文件,例如Start文件夹用来存储STM32所需的启动文件,Library文件夹用来存放STM32的各种外设文件,User文件夹用来存放main等相关文件,之后如果我们自己写相关模块的驱动文件,也可以创建一个文件夹(例如BSP)来存放模块的驱动文件。

STM32工程所需库文件,可以在https://www.st.com/en/embedded-software/stsw-stm32054.html地址下载,下载下来后我们来填充这几个文件夹的内容。

首先是Start文件夹:

 注意,start文件夹中start_up开头的几个汇编文件,不需要全部放到STM32工程中,需要找到自己芯片对应的容量,选择对应的容量进行添加,例如使用STM32F103C8T6,属于中容量,则选择md,使用STM32F103ZET6,属于大容量,则选择ld。

其次Library文件夹:

最后是User文件夹:

这样,文件夹内容就填充好了,下面我们将该文件拓扑在Keil5中复制一份。

但是此刻,keil工程并不知道我们头文件的路径,因此还需将各种包含的头文件在Keil中配置下。

上图还有一个框到的绿色部分,这个宏定义的来源可以查看stm32f10x.h文件。

 之后编译一下,可以看到0error,至此,STM32工程搭建完毕!

  • 30
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 如果要学习STM32单片机,有很多可用的学习资料和资源供你参考和学习。首先,STMicroelectronics官方网站是最好的信息来源之一。在官方网站上,你可以找到Data Briefs、Technical Notes、Application Notes和User Manuals等多种文档,这些文档可以帮助你了解不同型号的STM32单片机,并提供详细的技术细节和应用示例。 此外,STMicroelectronics还提供了免费的配套开发工具和软件,如STM32CubeIDE、STM32CubeMX和HAL库等。这些工具可以帮助你开发、调试和烧写STM32单片机的代码,并提供丰富的代码库和实例,方便你快速入门。 除了官方资料外,网络上还有大量的STM32单片机学习资料和教程。你可以通过搜索引擎找到许多相关博客、论坛和视频教程,其中包括了解STM32单片机的基础知识、使用各种开发环境和编程语言进行开发,以及实际项目的应用示例等。这些资源可以帮助你深入学习STM32单片机的各个方面,并解决你在学习和项目中遇到的问题。 同时,还有一些出版的教材和参考书籍,如《精通STM32单片机》、《STM32权威指南》等,这些书籍以系统化的方式解释了STM32单片机的原理和应用,可以作为深入学习的参考资料。 总之,STM32单片机学习资料是丰富多样的,从官方资料到网络资源、教程和书籍都是很好的学习参考。结合多种源的学习材料和实践经验,你可以更好地掌握STM32单片机的开发和应用。 ### 回答2: STM32是一种广泛应用于嵌入式系统开发的32位单片机系列,具有高性能、低功耗和丰富的外设资源。学习STM32单片机需要掌握其基本原理、应用开发和编程技术等方面的知识。 首先,可以通过阅读官方提供的STM32单片机资料来进行学习。STMicroelectronics公司为STM32系列提供了官方的技术手册、应用笔记、教程和参考设计等资料,其中包含了单片机的内部结构、外设使用方法以及开发工具的介绍,有助于初学者对单片机的基本概念和应用进行了解。 其次,可以参考一些经典的STM32单片机编程教程和实例进行学习。在互联网上有很多相关的学习资源,包括视频教程、电子书和在线课程等,这些资源可以帮助初学者快速掌握STM32单片机的编程技巧和开发流程,了解如何使用STM32 HAL库和CubeMX软件进行开发。 此外,参加STM32单片机的实践项目和实验也是非常重要的学习方式。可以利用开发板或者仿真软件进行实验,从简单的LED闪烁开始,逐步深入学习各种外设的使用方法,例如串口通信、PWM输出和ADC采集等,通过实际操作来加深对STM32单片机的理解和应用。 最后,与其他STM32单片机学习者进行交流和探讨也是学习的重要途径。可以加入相关的技术社区、论坛或者参加线下的技术交流活动,与其他爱好者一起交流心得、解决问题和分享经验,共同进步。 综上所述,学习STM32单片机需要结合官方资料、编程教程、实践项目和交流讨论等多种方式,通过理论学习和实践操作相结合的方式来提高自己的技能和能力。只有不断学习和实践,才能逐步掌握STM32单片机的应用开发技术,发挥出其强大的功能。 ### 回答3: STM32单片机是一款由意法半导体公司推出的32位ARM Cortex-M系列微控制器。学习STM32单片机需要掌握一定的电子基础知识和C语言编程能力。以下是一些可供学习STM32单片机的资料推荐: 1. 官方资料:意法半导体官方网站提供了丰富的STM32单片机系列产品的技术文档、数据手册、应用笔记以及示例代码等,这些资料对于初学者和进阶者都非常有帮助。 2. 教材和教程:市面上有很多针对STM32单片机的教材和教程,其中一些是由专业人士撰写的,具有系统性和深度,适合系统学习。另外,也有一些网上的教程、博客和视频教程,可以提供实际操作示例和案例分析。 3. 社区论坛和博客:STM32单片机的学习过程中,遇到问题时可以向社区论坛提问和交流。ST社区、电子爱好者论坛、知乎等地都有相关的技术讨论区,可以从其他人的经验中获得帮助。此外,还有一些博客是由学习STM32的爱好者写的,分享各种学习心得和项目经验。 4. 实验平台和开发板:购买一块能够容易上手的STM32开发板,如ST-Link V3 Mini开发板等,这样可以借助官方提供的开发环境和示例程序,快速上手进行实验和开发。 5. 项目实战:在学习的过程中,可以选择一些具体的项目进行实战。可以从简单的LED闪烁开始,逐步扩展到涉及串口通信、蓝牙、传感器和外设等更复杂的项目。 总之,学习STM32单片机需要结合官方资料、教材和教程、社区讨论和项目实战等多种资源,根据自己的兴趣和基础情况选择合适的学习路径,坚持实践,不断积累经验,就能够逐渐掌握STM32单片机的原理和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

guaizaiguaizai

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

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

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

打赏作者

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

抵扣说明:

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

余额充值