淘客必须做网站,找客户的100个渠道,制作网页可以用word吗,网站开发推广招聘F4系统架构
8个主控总线7个被控总线
主控总线
Cortex-M4内核 I总线Cortex-M4内核 D总线Cortex-M4内核 S总线DMA1存储器总线DMA2存储器总线DMA2外设总线以太网DMA总线USB OTG HS DMA总线
被控总线
内部FLASH ICode总线内部FLASH DCode总线主要内部SRAM1#xff08;112KB7个被控总线
主控总线
Cortex-M4内核 I总线Cortex-M4内核 D总线Cortex-M4内核 S总线DMA1存储器总线DMA2存储器总线DMA2外设总线以太网DMA总线USB OTG HS DMA总线
被控总线
内部FLASH ICode总线内部FLASH DCode总线主要内部SRAM1112KB辅助内部SRAM216KB辅助内部SRAM364KB适用于F42xxx和F43xxxAHB1外设包括AHB-APB总线桥和APB外设AHB2外设FSMC 主控总线被控总线
CCM RAM只能存数据优点访问速度快缺点不支持DMA
总线时钟频率
AHB1/2168/180MHzMaxAPB142/45MHzMaxAPB284/90MHzMax
FSMC主要用于扩展外部存储器
STM32的寻址范围
32位的单片机有32根地址线每根地址线有两种状态导通或不导通 单片机内存地址访问的存储单元是按字节编址的而不是bit STM32寻址大小2324G字节 寻址范围0x00000000~0xFFFFFFFF
存储器映射
存储器指可以存储数据的设备本身没有地址信息对存储器分配地址的过程称为存储器映射。
存储器功能划分F1为例ST将4G232地址空间分成8个块
Block0CodeFLASH—— 0x0000 0000 ~ 0x1FFF FFFF512MBBlock1SRAM —— 0x2000 0000 ~ 0x3FFF FFFF512MBBlock2片上外设 —— 0x4000 0000 ~ 0x5FFF FFFF512MB Block7Cortex M3内部外设 —— 0xE000 0000 ~ 0xFFFF FFFF512MB 寄存器映射
寄存器是单片机内部一种特殊的内存可以实现对单片机各个功能的控制。
寄存器就是单片机内部的控制机构
STM32寄存器分类 寄存器是特殊的存储器给寄存器地址命名的过程就叫寄存器映射。 寄存器地址计算
为了方便编写代码及使用我们将寄存器地址分为三个部分
总线基地址外设基于总线基地址的偏移量寄存器相对于外设基地址的偏移量 APB1总线的基地址也叫外设基地址 GPIOA_ODR寄存器地址计算过程
获取外设挂在哪个总线上面查系统结构图获取总线基地址APB2总线基地址0x4001 0000获取外设地址偏移量GPIOA相对APB2总线偏移量是0x800获取寄存器地址偏移量ODR相对GPIOA外设基地址的偏移量是0x0C
typedef struct
{__IO uint32_t CRL;__IO uint32_t CRH;...
}GPIO_TypeDef;GPIOA_BASE:0x4001 0800
#define GPIOA (GPIO_TypeDef *)GPIOA_BASEGPIOA-ODR 0XFFFF;
STM32F103xe.h主要组成部分
中断编号定义定义IRQn_Type枚举类型包含STM32F103内部所有中断编号中断号方便后续编写代码。外设寄存器结构体类型定义以外设为单位使用结构体类型定义每个外设所有寄存器方便寄存器映射。寄存器映射1、定义总线地址和外设基地址。2、使用外设结构体类型定义将外设基地址强制转换成结构体指针完成寄存器映射。寄存器位定义定义外设寄存器每个功能位的位置及掩码。外设判定判断某个外设是否合法即是否存在该外设。