佳佳-lunai学习“零死角玩转stm32”记录编写——2,STM32芯片

STM32 长啥样

如图所示的是STM32F103VET6的芯片实拍图,芯片正面是丝印,ARM 应该是表示该芯片使用的是 ARM 的内核,STM32F103VET6 是芯片型号,后面的字应该是跟生产批次相关,最上面的是 ST 的 LOGO 。芯片四周是引脚,开发板中把芯片的引脚引出来,连接到各种传感 器上,然后在 STM32 上编程(实际就是通过程序控制这些引脚输出高电平或者低电平)来 控制各种传感器工作,通过做实验的方式来学习 STM32 芯片的各个资源。

芯片里面有什么

我们看到的 STM32 芯片是已经封装好的成品,主要由内核和片上外设组成,STM32F103 采用的是 Cortex-M3 内核(内核即 CPU),由 ARM 公司设计(ARM 公司并 不生产芯片,而是出售其芯片技术授权。芯片生产厂商(SOC)如 ST、TI、Freescale,负责 在内核之外设计部件并生产整个芯片)这些内核之外的部件被称为核外外设或片上外设。 如 GPIO、USART(串口)、I2C、SPI 等都叫做片上外设。

        芯片(这里指内核,或者叫 CPU)和外设之间通过各种总线连接,其中驱动单元有 4 个,被动单元也有 4 个,我们都可以把驱动单元理解成是 CPU 部分,被动单元都理解成外设。

驱动单元和被动单元

驱动单元

       1,DCode 总线 DCode 中的 D 表示 Data,即数据,那说明这条总线是用来取数的。我们在写程序的时 候,数据有常量和变量两种,常量就是固定不变的,用 C 语言中的 const关键字修饰,是放 到内部的 FLASH 当中的,变量是可变的,不管是全局变量还是局部变量都放在内部的 SRAM。因为数据可以被 Dcode 总线和 DMA 总线访问,所以为了避免访问冲突,在取数的 时候需要经过一个总线矩阵来仲裁,决定哪个总线在取数。

      2,系统总线 系统总线主要是访问外设的寄存器,我们通常说的寄存器编程,即读写寄存器都是通 过这根系统总线来完成的。

     3,DMA 总线 DMA 总线也主要是用来传输数据,这个数据可以是在某个外设的数据寄存器,可以在 SRAM,可以在内部的 FLASH。因为数据可以被 Dcode 总线和 DMA 总线访问,所以为了 避免访问冲突,在取数的时候需要经过一个总线矩阵来仲裁,决定哪个总线在取数。

被动单元

        1,内部的闪存存储器 内部的闪存存储器即 FLASH,我们编写好的程序就放在这个地方。内核通过 ICode 总 线来取里面的指令。

        2,内部的 SRAM 内部的 SRAM,即我们通常说的 RAM,程序的变量,堆栈等的开销都是基于内部的 SRAM。内核通过 DCode 总线来访问它。

        3,FSMC FSMC 的英文全称是 Flexible static memory controller,叫灵活的静态的存储器控制器, 是 STM32F10xx 中一个很有特色的外设,通过 FSMC,我们可以扩展内存,如外部的 SRAM,NANDFLASH 和 NORFLASH。但有一点我们要注意的是,FSMC 只能扩展静态的 内存,即名称里面的 S:static,不能是动态的内存,比如 SDRAM 就不能扩展。

        4,AHB 到 APB 的桥 从 AHB 总线延伸出来的两条 APB2 和 APB1 总线,上面挂载着 STM32 各种各样的特 色外设。我们经常说的GPIO、串口、I2C、SPI这些外设就挂载在这两条总线上。(重点)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值