各位大神好: 由于我是硬件爱好者,完全靠自学,身边没有可以咨询的人,特来发贴请求解答疑问。 其实就是关于SysTick的疑问: 第一,先看我的RCC的Config设置, 用图来说明: 就是就是用外部HSE. 用的是8MHz, 通过PLL的9倍频,让SYSCLK和HCLK达到了72MHz. 第二,我来看大部分例程的 dalay_init的代码。(一般调用都是delay_init(72)) void delay_init(u8 SYSCLK) { SysTick->CTRL&=0xfffffffb; fac_us=SYSCLK/8; fac_ms=(u16)fac_us*1000; } 关于这一句: SysTick->CTRL&=0xfffffffb; 这里就是设置使用外部时钟。 按照我的理解 SysTick使用外部时钟 应该是8MHz(HSE)啊。 但在库里也有这样定义: #define SysTick_CLKSource_HCLK_Div8 ((uint32_t)0xFFFFFFFB)//将控制状态寄存器的第二位置0,即用外部时钟源 #define SysTick_CLKSource_HCLK ((uint32_t)0x00000004)//将控制状态寄存器的第二位置1,即用内核时钟 我也查了网上的,大部分也是 72MHz/8. 为9MHz. 这里一直没有搞明白,外部时钟源到底是指的什么? 还是说不用管外部时钟为多少MHz, 都是HCLK的8分频? 希望大家能帮我解惑。 感谢感谢。 不知道我把我的问题说明白了没有? |
你在main循环里写个LED闪烁,加个延时函数
然后修改这个延时函数的参数值就可以了
非要把底层东西搞透的话你就无法迈出第一步了
这和底层没有关系吧? 只是把概念搞清楚。 只是要搞清楚到底应该是依据那个值而已?
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分