打印
[应用相关]

STM32的介绍及MDK

[复制链接]
7564|154
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qn7a12|  楼主 | 2023-4-30 11:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
STM32介绍单片机

使用特权

评论回复
评论
qn7a12 2023-4-30 11:30 回复TA
———————————————— 版权声明:本文为CSDN博主「32码奴」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_45578181/article/details/126531649 
沙发
qn7a12|  楼主 | 2023-4-30 11:29 | 只看该作者
STM32命名


armV7的三个系列

A:针对操作系统
R:针对实时系统
M:针对微控制器



使用特权

评论回复
板凳
qn7a12|  楼主 | 2023-4-30 11:29 | 只看该作者
STM32系统结构
ARM是一个做芯片标准的公司,它负责的是芯片内核的架构设计,而TI,ST这样的公司,他们并不做标准,他们是芯片公司,他们是根据ARM公司提供的芯片内核标准设计自己的芯片。

使用特权

评论回复
地板
qn7a12|  楼主 | 2023-4-30 11:29 | 只看该作者
不同公司设计的Cortex-M4芯片他们的端口数量,串口数量,控制方法这些都是有区别的


四个驱动单元是:
内核 DCode 总线;
系统总线;
通用 DMA1;
通用 DMA2;

使用特权

评论回复
5
qn7a12|  楼主 | 2023-4-30 11:29 | 只看该作者
四被动单元是:

AHB 到 APB 的桥:连接所有的 APB 设备;
内部 FlASH 闪存;
内部 SRAM;
FSMC;

使用特权

评论回复
6
qn7a12|  楼主 | 2023-4-30 11:30 | 只看该作者
CMSIS标准
为了能让不同的芯片公司生产的Cortex-M4芯片能在软件上基本兼容,和芯片生产商共同提出了一套标准CMSIS标准(Cortex Microcontroller Software Interface Standard) ,翻译过来是“ARM Cortex™ 微控制器软件接口标准”。ST官方库就是根据这套标准设计的。

使用特权

评论回复
7
qn7a12|  楼主 | 2023-4-30 11:35 | 只看该作者
基于CMSIS应用程序基本结构如下图:

使用特权

评论回复
8
qn7a12|  楼主 | 2023-4-30 11:35 | 只看该作者
CMSIS分为3个基本功能层:

核内外设访问层:ARM公司提供的访问,定义处理器内部寄存器地址以及功能函数。
中间件访问层:定义访问中间件的通用API。由ARM提供,芯片厂商根据需要更新。
外设访问层:定义硬件寄存器的地址以及外设的访问函数。

使用特权

评论回复
9
qn7a12|  楼主 | 2023-4-30 11:35 | 只看该作者
从图中可以看出,CMSIS层在整个系统中是处于中间层,向下负责与内核和各个外设直接打交道,向上提供实时操作系统用户程序调用的函数接口。

如果没有CMSIS标准,那么各个芯片公司就会设计自己喜欢的风格的库函数,而CMSIS标准就是要强制规定,芯片生产公司设计的库函数必须按照CMSIS这套规范来设计。

使用特权

评论回复
10
qn7a12|  楼主 | 2023-4-30 11:36 | 只看该作者
CMSIS规范就规定,系统初始化函数名字必须为SystemInit,所以各个芯片公
司写自己的库函数的时候就必须用SystemInit对系统进行初始化。

使用特权

评论回复
11
qn7a12|  楼主 | 2023-4-30 11:36 | 只看该作者
CMSIS还对各个外设驱动文件的文件名字规范化,以及函数名字规范化等等一系列规定。

使用特权

评论回复
12
qn7a12|  楼主 | 2023-4-30 11:37 | 只看该作者
STM32F4方包绍官方库包

使用特权

评论回复
13
qn7a12|  楼主 | 2023-4-30 11:37 | 只看该作者
Libraries文件夹下面有CMSIS和STM32F4xx_StdPeriph_Driver两个目录

CMSIS文件夹存放的是符合CMSIS规范的一些文件。包括STM32F4核内外设访问层代码,DSP软件库,RTOS API,以及STM32F4片上外设访问层代码等。
STM32F4xx_StdPeriph_Driver放的是STM32F4标准外设固件库源码文件和对应的头文件。
inc目录存放的是stm32f4xx_ppp.h头文件,无需改动。
src目录下面放的是stm32f4xx_ppp.c格式的固件库源码文件。

使用特权

评论回复
14
qn7a12|  楼主 | 2023-4-30 11:45 | 只看该作者
Libraries文件夹里面的文件在我们建立工程的时候都会使用到。
Project文件夹下面有两个文件夹。

STM32F4xx_StdPeriph_Examples文件夹下面存放的的ST官方提供的固件实例源码,可以参考修改这个官方提供的实例来快速驱动自己的外设,很多开发板的实例都参考了官方提供的例程源码,这些源码对以后的学习非常重要。
STM32F4xx_StdPeriph_Template文件夹下面存放的是工程模板。
Utilities文件下就是官方评估板的一些对应源码

使用特权

评论回复
15
qn7a12|  楼主 | 2023-4-30 11:46 | 只看该作者
STM32F103
STM32F103资源
64KB SRAM
512KB FLASH
2 个基本定时器、4 个通用定时器、2 个高级定时器
2 个 DMA 控制器(共 12 个通道)
3 个 SPI
2 个 IIC
5 个串口
1 个 USB
1 个 CAN
3 个 12 位 ADC、1 个 12 位 DAC
1 个 SDIO 接口、1 个 FSMC 接口
112 个通用 IO 口
84个中断,16个可编程优先级,任意脚中断
带有外部总线(FSMC)可以用来外扩 SRAM 和连接 LCD 等

使用特权

评论回复
16
qn7a12|  楼主 | 2023-4-30 11:52 | 只看该作者
STM32F103总线架构

使用特权

评论回复
17
qn7a12|  楼主 | 2023-4-30 11:52 | 只看该作者
四个驱动单元是:

内核 DCode 总线;
该总线将 M3 内核的 DCode 总线与闪存存储器的数据接口相连接,常量加载和调试访问在该总线上面完成。

使用特权

评论回复
18
qn7a12|  楼主 | 2023-4-30 11:53 | 只看该作者
系统总线;
系统总线:该总线连接 M3 内核的系统总线到总线矩阵,总线矩阵协调内核和 DMA 间访

使用特权

评论回复
19
qn7a12|  楼主 | 2023-4-30 11:53 | 只看该作者
通用 DMA1;
通用 DMA2;
DMA总线将 DMA 的 AHB 主控接口与总线矩阵相连,总线矩阵协调 CPU 的DCode 和 DMA 到 SRAM,闪存和外设的访问。

使用特权

评论回复
20
qn7a12|  楼主 | 2023-4-30 11:53 | 只看该作者
四被动单元是:

AHB 到 APB 的桥:连接所有的 APB 设备;
AHB/APB 桥:这两个桥在 AHB 和 2 个 APB 总线间提供同步连接,APB1 操作速度限于36MHz,APB2 操作速度全速。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

533

帖子

1

粉丝