新手入门
- 积分
- 28
- 金钱
- 28
- 注册时间
- 2015-7-9
- 在线时间
- 0 小时
|
5金钱
新人第一次发帖,我在写代码是发现一个问题:
当我如下设置时:
RCC_HCLKConfig(RCC_SYSCLK_Div1); /*AHB Clock*/
RCC_PCLK2Config(RCC_SYSCLK_Div1); /*APB2 Clock*/
RCC_PCLK1Config(RCC_SYSCLK_Div2); /*APB1 Clock's value set as SYSCLK/2 */
Systick延时 delay_ms(1000),实际执行需要两秒。
但是,当我如下设置时
RCC_PCLK2Config(RCC_SYSCLK_Div1); /*APB2 Clock*/
RCC_PCLK1Config(RCC_SYSCLK_Div2); /*APB1 Clock's value set as SYSCLK/2 */
RCC_HCLKConfig(RCC_SYSCLK_Div1); /*AHB Clock*/
Systick延时 delay_ms(1000),实际执行运行是 1秒。
我再次做了一下改变:
RCC_HCLKConfig(RCC_SYSCLK_Div1); /*AHB Clock*/
RCC_PCLK2Config(RCC_SYSCLK_Div1); /*APB2 Clock*/
RCC_PCLK1Config(RCC_SYSCLK_Div1); /*APB1 Clock's value set as SYSCLK/2 */
Systick延时 delay_ms(1000),实际执行运行是 1秒。
仅仅是改变了一下语句的位置,为何第一种情况会延时两秒,第二种情况是1秒,第三种情况就有点离谱了,据我所知,Systick 和APB1貌似没什么关系。我是用的Systick函数是与原子一样的。用的芯片是STM32F103RCT6。希望有经验的人过来讨论一下。
|
最佳答案
查看完整内容[请看2#楼]
看先时钟树就明白了 一般Systick 时钟是由 AHB时钟8分频来的 所以改变AHB时钟分频系数 才会影响Systick 时钟
|