||
一 RCC设置说明:
由上图可知AHB到APB的桥(AHB2APBx) ,它连接所有的APB 设备,所以在时钟初始化时我们主要设置几个个地方:
1.系统时钟SYSCLK
2.AHB时钟HCLK.
3.APB1时钟PCLK1
4.APB2时钟PCLK2.
说明:1.SYSCLK主要由HSE和PLL决定,SYSCLK = HSE * PLL(倍频数).
2.AHB时钟由SYSCLK分频后决定。一般取一分频。即SYSCLK = HCLK
3.PCLK1时钟由HCLK决定。由于PCL1最大时钟为36MHZ,而HCLK一般为72Mhz,所以PCLK1一般取HCLK2分频后的值,即PCLK1 = HCLK/2.
4.PCLK2时钟也由HCLK决定,因为PCLK2最大时钟为72MHZ,所以PCL2时钟取HCLK一分频后的值。即PCLK2 = HCLK;
二 FLASH说明
闪存读取
闪存的指令和数据访问是通过AHB总线完成的。预取模块是用于通过ICode 总线读取指令的。仲裁是作用在闪存接口,并且DCode总线上的数据访问优先。
读访问可以有以下配置选项:
● 等待时间:可以随时更改的用于读取操作的等待状态的数量。
● 预取缓冲区(2 个64位):在每一次复位以后被自动打开,由于每个缓冲区的大小(64 位)与闪
存的带宽相同,因此只通过需一次读闪存的操作即可更新整个缓冲区的内容。由于预取缓
冲区的存在,CPU可以工作在更高的主频。CPU每次取指最多为32位的字,取一条指令
时,下一条指令已经在缓冲区中等待。
● 半周期:用于功耗优化。
注: 1. 这些选项应与闪存存储器的访问时间一起使用。等待周期体现了系统时钟(SYSCLK) 频率与闪
存访问时间的关系:
0等待周期,当 0 < SYSCLK < 24MHz
1等待周期,当 24MHz < SYSCLK ≤ 48MHz
2等待周期,当 48MHz < SYSCLK ≤ 72MHz
2 . 半周期配置不能与使用了预分频器的AHB一起使用,时钟系统应该等于HCLK时钟。该特性
只能用在时钟频率为8MHz 或低于8MHz 时,可以直接使用的内部RC振荡器(HSI),或者是主振
荡器(HSE) ,但不能用PLL 。
3. 当AHB预分频系数不为1时,必须置预取缓冲区处于开启状态。
4. 只有在系统时钟(SYSCLK) 小于24MHz并且没有打开AHB的预分频器(即HCLK必须等于
SYSHCLK)时,才能执行预取缓冲器的打开和关闭操作。一般而言,在初始化过程中执行预取
缓冲器的打开和关闭操作,这时微控制器的时钟由8MHz 的内部RC振荡器(HSI)提供。
5. 使用DMA:DMA在DCode总线上访问闪存存储器,它的优先级比ICode 上的取指高。DMA在
每次传送完成后具有一个空余的周期。有些指令可以和DMA传输一起执行