企业做增资 网站平台,龙岗网站制作新闻,湖南省绿色建筑信息平台,wordpress链接跳转目录
1.什么是STM32
2.STM32命名规则
3.STM32外设资源
4. STM32的系统架构
5. 从0到1搭建一个STM32工程 学习stm32已经很久了#xff0c;因为种种原因#xff0c;也有很久一段时间没接触过stm32了。等我捡起来的时候#xff0c;发现很多都已经忘记了#xff0c;重新捡…目录
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互联型产品按照功能上划分又可分为STM32F101xxxSTM32F102xxxSTM32F103xxx系列。 注 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工程搭建完毕