认识STM32
认识STM32 (内部) 一、STM32内部 芯片里面有什么:内核(ARM的Cortex-M3)+外设。内核相当于电脑主板上的CPU;外设相当于显卡、内存。内核和外设之间通过总线连接。 1、ICode总线 程序存在Flash中,通过ICode(Instruction Code)总线与Cortex连接。 2、驱动单元 DCode总线 数据被存放在外设内部Flash(SRAM)中,通过DCode(Data Code)访问。 System总线 访问外设的寄存器,通常说的寄存器编程就是用这条总线的。 DMA总线 数据变量拷贝时可以不占用CPU,通过DMA(Direct Memory Access)总线和DMA1、DMA2完成。 3、被动单元 闪存存储器 即FLASH存放程序指令,内核通过ICode来读取指令。 SRAM 存放变量,内核通过DCode来访问。 FSMC 可以用来扩展内存。 AHB到APB的桥 挂着很多stm32特色外设,如:GPIO、串口、IIC、SPI等。学STM32的重点就是学编程这些外设去驱动外部的各种设备。 二、存储器映射 1、寄存器操作 操作单片机的本质都是操作存储中的寄存器,实际的操作过程就是改变内存中一定的地址对应的值。最原始的办法是直接访问地址取值进行修改。 例如*(unsigned int *)(0x40010c0c) = 0xffff 2、存储器地址划分