专题 - STM32

基础

基础知识

  1. STM所有产品线(列举型号):
  2. STM产品的3内核架构(列举ARM芯片架构):
  3. STM32的3开发方式:
  4. STM32的5开发工具和套件:
  5. 若要在电脑上直接硬件级调试STM32设备,则需要仿真器。
    STM32CubeIDE仅支持ST-LINK仿真器和J-LINK仿真器。
  6. STM32F41CEU6与Cortex-M4有何区别?
    1. STM32F41CEU6是微控制器(MCU);Cortex-M4是嵌入式处理器(Embedded CPU)。
    2. STM32F41CEU6微控制器的核心组件,是Cortex-M4嵌入式处理器。
  7. 单片机为什么需要晶振才能正常工作?
    1. 单片机基于数字电路,而数字电路需要节拍的推动才能正常工作。
    2. 由于晶振元件材料的特殊性,在为其通电后,会周期性的持续输出变化的电压。这种精确变化的电压信号,就可以为各种数字电路提供"心跳"信号。

STM32F41CEU6微控制器(MCU)

特性

特性 备注
CPU ARM Cortex-M4 1. 32 位。 2. RISC 架构。 3. 最大速度 100MHz。 4. 有硬件级的单精度浮点计算单元(FPU)。 5. 有硬件级的数字信号处理器(DSP),支持 DSP 指令,以加速特定任务。
RAM 128K 1. 嵌入式内存(Embedded RAM)。 2. 静态内存(Static RAM)。 3. 有内存保护单元(Memory Protection Unit),以管理 CPU 对存储器的访问,避免因某个任务执行出错而影响其他任务的数据。
ROM 512K 1. 嵌入式存储器(Embedded Flash Memory)。 2. Flash 存储器(Flash Memory)。 3. 非易失性存储器(Non-volatile Memory)。 4. 基于冯诺依曼结构,可同时存储程序和数据。
存储器加速器 ART 通过指令预取队列和分支缓存技术,减少了高速的 CPU 在计算时需经常等待低速的 Flash 的情况。
工作电压 1.7V ~ 3.6V 支持低电压工作,以支持低功耗设计。
总线 6 条主控总线、5 条被控总线 参见:[STM32F41CEU6 微控制器(MCU) - 总线](#项 特性 备注 CPU ARM Cortex-M4 1. 32 位。 2. RISC 架构。 3. 最大速度 100MHz。 4. 有硬件级的单精度浮点计算单元(FPU)。 5. 有硬件级的数字信号处理器(DSP),支持 DSP 指令,以加速特定任务。 RAM 128K 1. 嵌入式内存(Embedded RAM)。 2. 静态内存(Static RAM)。 3. 有内存保护单元(Memory Protection Unit),以管理 CPU 对存储器的访问,避免因某个任务执行出错而影响其他任务的数据。 ROM 512K 1. 嵌入式存储器(Embedded Flash Memory)。 2. Flash 存储器(Flash Memory)。 3. 非易失性存储器(Non-volatile Memory)。 4. 基于冯诺依曼结构,可同时存储程序和数据。 存储器加速器 ART 通过指令预取队列和分支缓存技术,减少了高速的 CPU 在计算时需经常等待低速的 Flash 的情况。 工作电压 1.7V ~ 3.6V 支持低电压工作,以支持低功耗设计。 总线 6 条主控总线、5 条被控总线 参见:STM32F41CEU6 微控制器(MCU) - 总线。 时钟 多时钟 参见:STM32F41CEU6 微控制器(MCU) - 时钟。)。
时钟 多时钟 参见:[STM32F41CEU6 微控制器(MCU) - 时钟](#项 特性 备注 CPU ARM Cortex-M4 1. 32 位。 2. RISC 架构。 3. 最大速度 100MHz。 4. 有硬件级的单精度浮点计算单元(FPU)。 5. 有硬件级的数字信号处理器(DSP),支持 DSP 指令,以加速特定任务。 RAM 128K 1. 嵌入式内存(Embedded RAM)。 2. 静态内存(Static RAM)。 3. 有内存保护单元(Memory Protection Unit),以管理 CPU 对存储器的访问,避免因某个任务执行出错而影响其他任务的数据。 ROM 512K 1. 嵌入式存储器(Embedded Flash Memory)。 2. Flash 存储器(Flash Memory)。 3. 非易失性存储器(Non-volatile Memory)。 4. 基于冯诺依曼结构,可同时存储程序和数据。 存储器加速器 ART 通过指令预取队列和分支缓存技术,减少了高速的 CPU 在计算时需经常等待低速的 Flash 的情况。 工作电压 1.7V ~ 3.6V 支持低电压工作,以支持低功耗设计。 总线 6 条主控总线、5 条被控总线 参见:STM32F41CEU6 微控制器(MCU) - 总线。 时钟 多时钟 参见:STM32F41CEU6 微控制器(MCU) - 时钟。)。

总线

  1. 总线分布:
  2. 功能分布:

    据上2图可知:
    1. 6条主控总线分别为:
      1. Cortex-M4嵌入式处理器的指令总线(I-bus)(上图中标注的S0)。
        以使CPU从总线矩阵中取指。
      2. Cortex-M4嵌入式处理器的数据总线(D-bus)(上图中标注的S1)。
        以使CPU立即加载到数据和调试。
      3. Cortex-M4嵌入式处理器的系统总线(S-bus)(上图中标注的S2)。
        以使CPU从内存或外设中取数据。
      4. 直接内存存取(DMA)控制器1的DMA控制总线(DMA_MEM1)(上图中标注的S3)。
        以使DMA控制器直接接管在存储器间、存储器与外设间的数据传输。
      5. 直接内存存取(DMA)控制器2的DMA控制总线(DMA_MEM2)(上图中标注的S4)。
        以使DMA控制器直接接管在存储器间、存储器与外设间的数据传输。
      6. 直接内存存取(DMA)控制器2的DMA外设控制总线(DMA_P2)(上图中标注的S5)。
        以使数据无需经CPU处理而直接在外设与内存间传输。
    2. 5条被控总线分别为:
      1. Flash存储器的程序指令总线(ICODE)(上图中标注的M0)。
        因为Flash存储器是同时存储程序与数据的,故需要有一条总线专用于程序指令的取指、执行。
      2. Flash存储器的数据读写总线(DCODE)(上图中标注的M1)。
        因为Flash存储器是同时存储程序与数据的,故需要有一条总线专用于数据的读写。
      3. 系统内存总线(上图中标注的M2)。
        用于内存与CPU间、内存与DMA控制器间的数据传输。
      4. 高级高速总线1(AHB1)的总线(上图中标注的M3)。
        属于AHB总线的一个分支,是高速的外设总线。
        可将高速运行的、高数据吞吐量的外围设备与系统互相连接起来,以实现互访。
      5. 高级高速总线 2(AHB2)的总线(上图中标注的M4)。
        属于AHB总线的一个分支,是高速的外设总线。
        可将高速运行的、高数据吞吐量的外围设备与系统互相连接起来,以实现互访。
    3. 4条外设总线。其中:
      1. AHB1总线与AHB2总线,在结构上相对独立。
      2. AHB1总线又向下派生出2条总线,分别为APB1总线、APB2总线。
      3. 除APB1是低速总线外,其余3个均为高速总线。

时钟

  1. 时钟分布:

    据上图可知:
    1. 不同于STC51系列等早期的单片机,其晶振只有一个,且频率固定。
      在STM32系列单片机中,晶振若干,且频率可调,以适应更多场景、满足更多需求(上图中标注的红、绿、粉框)。
    2. 时钟的分类:
      据上图可知:
    3. 系统时钟(SYSCLK)的时钟信号来源,可由以下3个时钟提供:
      1. HSI时钟(时钟分布图中标注的序号1)。
      2. HSE时钟(时钟分布图中标注的序号2)。
      3. 主PPL时钟(Main PLL)中的P分支(PLLP)(时钟分布图中标注的序号3)。
    4. 锁相环时钟(PLL)的时钟信号来源,可由以下2个时钟提供:
      1. HSI时钟(时钟分布图中标注的序号4)。
      2. HSE时钟(时钟分布图中标注的序号5)。
    5. 锁相环时钟(PLL),输出以下2路时钟信号:
      1. 给主PLL(Main PLL)输出提供时钟信号(时钟分布图中标注的序号6)。

        主PLL(Main PLL),又输出2路时钟信号:

        1. 通过P分支(PLLP)给系统时钟(SYSCLK)输出提供信号(时钟分布图中标注的序号3)。

        2. 通过Q分支(PLLQ)给USB OTG FS/随机数发生器/SDIO输出提供信号(时钟分布图中标注的序号8)。

      2. 给I2S输出提供信号(时钟分布图中标注的序号7)。

      3. 单片机的CPU频率,由系统(SYSCLK)时钟经AHB分频器分频后的HCLK时钟决定。

相关推荐
FreakStudio2 小时前
开源一款串口舵机驱动扩展板-FreakStudio多米诺系列
单片机·嵌入式·大学生·电子diy
艾格北峰3 小时前
STM32 物联网智能家居 (六) OLED显示设备
arm开发·stm32·单片机·嵌入式硬件·物联网·智能家居
雪兽软件3 小时前
物联网简介集合
物联网
热爱嵌入式的小许6 小时前
STM32 HAL库&标准库+ESP8266+机智云
stm32·单片机·嵌入式硬件·stm32移植机智云·stm32连接机智云·hal库移植机智云·标准库移植机智云
无际单片机编程7 小时前
面对STM32的庞大体系,如何避免迷失在细节中?
java·stm32·单片机·嵌入式硬件·嵌入式开发
【云轩】8 小时前
【零基础实战】用STM32玩转DRV8313电机驱动:从原理到无人机/机器人控制
stm32·机器人·无人机
2301_764602239 小时前
stm32hal库寻迹+蓝牙智能车(STM32F103C8T6)
stm32·单片机·嵌入式硬件
楼台的春风10 小时前
PWM(脉宽调制)技术详解:从基础到应用实践示例
c语言·stm32·单片机·嵌入式硬件·mcu·物联网·嵌入式
深圳市青牛科技实业有限公司 小芋圆11 小时前
芯谷D2761:为扬声器保护而生的音频限幅器
人工智能·科技·单片机·嵌入式硬件·机器人·音视频
程序员JerrySUN11 小时前
树莓派 4B:AI 物联网完整部署方案
linux·人工智能·嵌入式硬件·物联网·分类·数据挖掘