STM32学习笔记1---系统架构、时钟及重映射

STM32 系统架构:

Cortex-M3、系统总线、DMA1、DMA2,Flash、SRAM、FSMC、AHB、外设。

ICode 总线:将 M3 内核指令总线闪存指令接口相连,指令的预取在该总线上
面完成。
DCode 总线:该总线将 M3 内核的 DCode 总线闪存存储器的数据接口相连接,常量加载调试访问在该总线上面完成。
系统总线:该总线连接 M3 内核的系统总线到总线矩阵,总线矩阵协调内核DMA
访问。
DMA 总线:该总线将 DMA 的 AHB 主控接口总线矩阵相连,总线矩阵协调 CPU 的
DCode 和 DMA 到 SRAM,闪存和外设的访问。
⑤ 总线矩阵:总线矩阵协调内核系统总线和 DMA 主控总线之间的访问仲裁,仲裁利用
轮换算法。
⑥ AHB/APB 桥:这两个桥在 AHB 和 2 个 APB 总线间提供同步连接,APB1 操作速度限于36MHz,APB2 操作速度全速

系统时钟:

①、HSI 是高速内部时钟,RC 振荡器,频率为 8MHz
②、HSE 是高速外部时钟,频率范围为4MHz~16MHz
③、LSI 是低速内部时钟,RC 振荡器,频率为 40kHz独立看门狗的时钟源只能是 LSI,同
时 LSI 还可以作为 RTC 的时钟源
④、LSE 是低速外部时钟,接频率为 32.768kHz 的石英晶体。这个主要是 RTC 的时钟源
⑤、PLL 为锁相环倍频输出,其时钟输入源可选择为 HSI/2HSE 或者 **HSE/2。**输出频率最大不得超过 72MHz

时钟输出:MCO 是 STM32 的一个时钟输出 IO(PA8),它可以选择一个时钟信号输出,可以
选择为 PLL 输出的 2 分频HSI、HSE、或者系统时钟。这个时钟可以用来给外部其他系统提供时钟源。RTC 的时钟源可以选择 LSI,LSE,以及HSE 的 128 分频

当需要使用 USB模块时,PLL 必须使能,并且时钟频率配置为 48MHz 或 72MHz

系统时钟可选择为 PLL 输出、HSI 或者 HSE。系统时钟最大频率为 72MHz

其他所有外设的时钟最终来源都是 SYSCLK。SYSCLK 通过 AHB 分频器分频后送给各模块使用。

systick:SYSCLK8 分频

SYSCLK–>HCLK:AHB 总线、内核、内存和 DMA,Cortex 的空闲运行时钟 FCLK,

APB1 上面连接的是低速外设,包括电源接口、备份接口、CAN、USB、I2C1、I2C2、UART2、UART3 等。APB2 上面连接的是高速外设包括 UART1、SPI1、Timer1、ADC1、ADC2、所有普通 IO 口(PA~PE)、第二功能 IO 口等。

时钟系统的初始化除了systeminit()在system_stm32f10x.c中,其他主要在stm32f10x_rcc.c文件中。

端口复用与重映射:

GPIO端口时钟使能+复用的外设时钟使能+设置对应的初始化

重映射是指:将一些外设的功能设置到具有重映射功能的引脚上。使能GPIO时钟(RCC_APB2PeriphClockCmd(x))+外设时钟+AFIO时钟+开启重映射(GPIO_PinRemapConfig(x))具体参照STM32参考手册。

部分重映射就是部分管脚和默认的是一样的,而部分管脚是重新映射到其他管脚。而完全重
映射就是所有管脚都重新映射到其他管脚

你可能感兴趣的:(学习笔记)