一、单片机应用系统
由单片机,系统硬件电路,软件系统三大部分组成。
二、Cortex-M3内核架构
1.寄存器组
2.嵌套向量中断控制器(NVIC)
3.外部中断信号组
4.存储器接口
5.总线互联网络
6.提示接口
三、stm32的系统架构
四、单片机的时钟
时钟就是对于单片机而言如同心脏提供跳动,这样才能驱使各种外设工作,stm32中有四个时钟源:
1.低速内部时钟(LSI):由内部RC振荡器产生,提供给实时时钟模块(RTC)和独立看门狗。
2.低速外部部时钟(LSE):以外部晶振作为时钟源,主要将其时钟信号提供给实时时钟,一般采用32.768kHz的频率。
3.高速内部时钟(HSI):由内部RC振荡器产生,频率为8MHz,但不稳定,可以直接作为系统时钟或者PLL输入。
4.高速外部时钟(HSE):以外部晶振作为时钟源,晶振频率可取4MHz~16MHz,一般采用8MHz的晶振频率;也可直接以系统时钟或者以PLL输入的外部高速时钟为例来分析,并假设外部晶振频率为8MHz。
如图所示,从左端的OSC_OUT和OSC_IN开始,这两个引脚分别接外部晶振的两端。频率为8MHz的时钟信号遇到第一个分频器PLLXTPRE,通过寄存器配置,对输入时钟信号进行二分频或不分频。假定选择不分频,经过PLLXTPRE后,频率仍为8MHz。然后遇到开关PLLSRC,可以选择其输出为外部高速时钟HSE或是内部高速时钟HSI。这里选择输出为HSE,接着遇到锁相环PLL(具有倍频作用),在这里可以输入倍频因子PLLMUL。如果倍频因子设定为9倍频,那么经过PLL之后,时钟从原来频率为8MHz的。HSE变为频率为72MHz的PLLCLK。紧接着为一个开关SW,经过此开关输出的是STM32的系统时钟SYSCLK,此开关用来选择SYSCLK的时钟源,可选择HSI、PLLCLK、HSE。这里选择PLLCLK,SYSCLK的频率就为72MHz。SYSCLK的信号经过AHB预分频器,分频后输入其他外设,如AHB总线、核心存储器、DMA、SDIO、存储器控制器FSMC,可作为APB1和APB2预分频器的输入端及作为Cortex自由运行时钟的FCLK。本例中设置AHB预分频器不分频,即输出信号的频率为72MHz。另外PLLCLK的信号在输入开关SW前,流向了USB预分频器,该分频器输出为USB外设的时钟(USBCLK)信号。