历史上的今天
返回首页

历史上的今天

今天是:2025年12月05日(星期五)

正在发生

2022年12月05日 | STM32入门系列-学习STM32要掌握的内容

2022-12-05 来源:zhihu

STM32芯片架构

STM32F103系列芯片的系统架构如下:



STM32芯片基于ARM公司的Cortex-M3内核,由ST公司设计生产,内核与总线矩阵之间有I(指令)、S(系统)、D(数据)三条信号线。内核通过总线矩阵与FLASH、SRAM、外设连接。而外设包括GPIO、USART、I2C、SPI等。


STM32芯片系统结构

STM32F103 系列芯片(不包含互联网型)的系统结构如下:



从上图可以看出,在小容量、中容量和大容量产品中,主系统由以下部分构

成:

四个驱动单元:

  • Cortex-M3 内核 DCode 总线(D-bus)

  • Cortex-M3 内核系统总线(S-bus)

  • 通用 DMA1

  • 通用 DMA2

四个被动单元:

  • 内部 SRAM

  • 内部闪存存储器FLASH

  • FSMC

  • AHB 到 APB 的桥(AHB2APBx),它连接所有的 APB 设备

这些都是通过一个多级的 AHB 总线构架相互连接的。 下面我们看看它们各自的功能:

  • ICode 总线

该总线将 Cortex-M3 内核的指令总线与闪存指令接口相连接。 指令预取在此

总线上完成。

  • DCode 总线

该总线将 Cortex-M3 内核的 DCode 总线与闪存存储器的数据接口相连接(常量加载和调试访问)。

  • 系统总线

此总线连接 Cortex-M3 内核的系统总线(外设总线)到总线矩阵, 总线矩阵协

调着内核和 DMA 间的访问。

  • DMA 总线

此总线将DMA的AHB主控接口与总线矩阵相联, 总线矩阵协调着CPU的DCode和 DMA 到 SRAM、闪存和外设的访问。

  • 总线矩阵

总线矩阵协调内核系统总线和 DMA 主控总线之间的访问仲裁, 仲裁利用轮换算法。在互联型产品中,总线矩阵包含 5 个驱动部件(CPU 的 DCode、系统总线、以太网 DMA、 DMA1 总线和 DMA2 总线)和 3 个从部件(闪存存储器接口(FLITF)、SRAM 和 AHB2APB 桥)。AHB 外设通过总线矩阵与系统总线相连,允许 DMA访问。

  • AHB/APB桥(APB)

两个 AHB/APB 桥在 AHB 和 2 个 APB 总线间提供同步连接。 APB1 操作速度限于 36MHz, APB2 操作于全速(最高 72MHz)。有关连接到每个桥的不同外设的地址映射请参考《STM32F1xx 中文参考手册》存储器映像章节。在每一次复位以后,所有除 SRAM 和 FLITF 以外的外设都被关闭,在使用一个外设之前,必须设置寄存器 RCC_AHBENR 来打开该外设的时钟。

STM32F1 的时钟系统相对复杂,在后续文章中再介绍。

STM32学习进阶路径

  • 基本外设:

GPIO 输入输出,外部中断,定时器,串口。理解了这四个外设,基本就入

门了一款 MCU。

  • 基本外设接口:

SPI,IIC,WDG, FSMC,ADC/DAC,SDIO 等。这些外设接口功能原理对每个芯片几乎都是一样。对芯片而言就是多和少而已。

  • 高级功能:

UCOS,FATFS,EMWIN 等。以及一些应用。

另外值得一提的是,C 语言是嵌入式开发的基础中的基础。如果 C 语言不过关,很大程度限制嵌入式学习的进度与深度。在这里推荐3本书学习C语言,刚开始可以参看谭浩强的《C程序设计 第四版》,入门之后看一下关于C指针的书《C 与指针》《C 指针编程之道》。学习嵌入式开发要多动手编程、多调试,遇到问题也可以向本公众号留言提问,作为一个入坑不久的STM32嵌入式开发者,在力所能及的范围内会抽时间与大家节流、反馈,与君共勉


推荐阅读

史海拾趣

Cal Crystal Lab Inc / Comclok Inc公司的发展小趣事

在激烈的市场竞争中,品牌建设和形象提升对于企业的发展至关重要。Comclok Inc深知品牌建设的重要性,从产品设计、生产到销售服务,都注重塑造公司的品牌形象。公司注重产品的品质和用户体验,不断提升产品的性能和稳定性。同时,Comclok Inc还积极参加各类行业展会和交流活动,展示公司的技术实力和产品优势,提升了公司在行业内的知名度和影响力。

CHENMKO公司的发展小趣事

随着电子行业的快速发展,技术创新和合作成为了企业发展的重要驱动力。Cal Crystal Lab Inc深知这一点,积极寻求与其他企业的技术合作。通过与国内外知名高校和研究机构的深入合作,公司不断引进新技术、新工艺,提升了产品的技术含量和附加值。同时,Cal Crystal Lab Inc还与其他企业建立了战略合作关系,共同开发新产品、拓展新市场,实现了共赢发展。

Eon公司的发展小趣事

E.ON集团的前身可以追溯到1999年,当时德国的两个能源巨头VEBA和VIAG宣布计划在2000年合并。这一合并标志着E.ON的诞生,成为德国乃至欧洲的重要能源公司。合并后,E.ON迅速崭露头角,通过整合双方的资源和优势,迅速占据了德国及欧洲能源市场的重要位置。

Cofan Usa Inc公司的发展小趣事

在电子行业的早期,Cofan Usa Inc公司以其敏锐的市场洞察力和技术创新能力,成功研发出一款具有革命性的电子产品,这款产品凭借其出色的性能和用户体验,迅速在市场上获得认可。公司不断投入研发资源,持续推出新产品,逐渐在电子行业中树立起了技术领先的形象。

Dae Ryung Electronic Co Ltd公司的发展小趣事

随着电子行业的不断发展和变革,Dae Ryung Electronic Co Ltd公司也面临着前所未有的挑战。为了应对这些挑战,公司积极调整战略和业务结构,加强在物联网、人工智能等新兴领域的研发和应用。同时,公司还注重人才培养和引进,吸引了一批高素质的技术和管理人才加入公司。这些努力使得公司在面对行业变革时能够保持领先地位并实现可持续发展。

Genesys Logic公司的发展小趣事

进入21世纪,“General Microcircuits”开始实施全球化战略,先后在美国、欧洲、亚洲等地建立研发中心和生产基地。通过全球化布局,公司不仅能够更快地响应不同地区的市场需求,还能充分利用各地的资源优势和技术优势,进一步提升产品的竞争力和市场占有率。同时,公司还加强了与国际知名电子制造商的战略合作,共同推动半导体技术的创新与发展。

问答坊 | AI 解惑

定点DSP芯片TMS320F2812实现快速算法应用

定点运算DSP在应用中已取得了极大的成功,而且仍然是DSP应用的主体。然而,随着对DSP处理速度与精度、存储器容量、编程的灵活性和方便性要求的不断提高、自80年代中后期以来,各DSP生产厂家陆续推出了各自的32bit浮点运算DSP。…

查看全部问答>

现在的三轴加速度传感器很便宜了,可以用于报警器的的振动传感器吗?

有人用三轴加速度计做振动传感器吗?实测效果如何,反应灵敏否?对鞭炮声应该不敏感.…

查看全部问答>

月薪1万找蓝牙开发工程师【上海】

我们公司要招一名Linux下的蓝牙开发工程师。公司地址在上海中山公园附近。薪资待遇1万/月。 职位要求: 1、精通LINUX系统以及C/C++编程(必须)。 2、熟悉嵌入式系统、单片机的开发。 3、精通蓝牙协议、蓝牙应用开发(必须)。 4、至少三年以 ...…

查看全部问答>

如何区分是USB 还是SD卡的插拔

如题。 现在要做USB插入和拔除的探测,并得到其盘符。 我是直接解析系统广播的消息:DBT_DEVICEREMOVECOMPLETE 和 DBT_DEVICEARRIVAL 但是问题比较奇怪,拔插U盘,与拔插SD卡得到的消息与参数是一样的: DEV_BROADCAST_HDR 结构的dbcp_devicety ...…

查看全部问答>

无线传输数据,发射端移动的时候,对传输质量影响很大,请问有没有什么好的解决方法?

现在有一个无线的项目(不采用跳频),我对无线接触不多,碰到这样的问题,发射端在移动的时候,对发射质量影响特别大,请教一下这方面的知识,和解决这个问题的方法。谢谢!…

查看全部问答>

如何在ftp中显示板子上文件的修改时间

ftp连接上后,选择详细信息,有的文件有修改时间,有的没有,并且显示的时间也不对 mpc860/tffs…

查看全部问答>

在脉冲RD的上升沿将内存的数据读到芯片的数据端口DOUT,怎样实现?

可以让这个脉冲信号直接做clock使用吗?? 例如下面这样写:always @(posedge RD )  DOUT_EN==1\'b1;产生一个enable 信号,综合时要对这个RD create clock 吗??…

查看全部问答>

MSP430驱动步进电机,使用DRV8814芯片原理图和参考源代码

TI DRV8814 步进电机驱动芯片:具有浪涌电流保护功能的 2.5A 双路刷式直流电机驱动器   DRV8814原理设计,MSP430与其接口电路原理图参见附件。  …

查看全部问答>

Quartus警告分析 warning

1.Found clock-sensitive change during active clock edge at time on register \"\" 原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加 载等)在时钟的边缘同时变化.而时钟敏感信号是不能在时钟边沿变化的.其后 果为导 ...…

查看全部问答>

C2000晒贴

C2000晒贴来啦,经过几天的学习,终于学完啦。…

查看全部问答>