完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1、写在前面
看到这个问题,我在想,这位朋友可能没有认真看手册,同时也存在一个误区。 我顺便也搜索了一下,网上很多文章都说到:SysTick时钟源是来自Cortex系统定时器,就是那个有8分频的时钟 但是,我们实际应用中,SysTick时钟源真的是来自这个Cortex系统定时器吗? 2、SysTick时钟初始化代码 不管是使用标准外设库,还是HAL库,你初始化SysTick,都会调用内核中的SysTick_Config函数。 比如: SysTick_Config(SystemCoreClock / 1000); 初始化调用这段代码之后,SysTick将会实现1ms中断一次。 这段代码实现1ms中断一次相信大家都能理解,但是这里SysTick初始化和上面说的时钟『/8』有关系吗? 3、SysTick时钟源是来自哪里? 这个问题只要认真看参考手册都能找到答案。 RCC通过AHB时钟(HCLK)8分频后作为Cortex系统定时器(SysTick)的外部时钟。 通过对SysTick控制与状态寄存器的设置,可选择上述时钟或Cortex(HCLK)时钟作为SysTick时钟。 也就是说SysTick时钟源可以来自两个地方: AHB时钟8分频 HCLK(内核)时钟 通过SysTick控制与状态寄存器的设置进行选择时钟源。 具体就是通过CLKSOURCE(时钟源)这一Bit位来选择: 再次看SysTick_Config函数源码: __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) { if ((ticks - 1UL) 》 SysTick_LOAD_RELOAD_Msk) { return (1UL); /* Reload value impossible */ } SysTick-》LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ NVIC_SetPriority (SysTick_IRQn, (1UL 《《 __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ -》VAL = 0UL; /* Load the SysTick Counter Value */ SysTick-》CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ return (0UL); /* Function successful */ } 你会发现,其实源码已经默认使用HCLK(内核)时钟。 而SysTick_Config函数属于内核(如core_cm3.h)已经写好源码,一般我们不去修改。 所以,到这里,你会明白:SysTick时钟源其实就是用的HCLK(内核)时钟。 4、STM32CubeMX.。。可选择1分频 分析上面问题的时候,我突然发现一个问题:为什么STM32CubeMX中Cortex系统定时器可选择1分频(和8分频)? (使用STM32CubeMX V5.1.0) 我通过配置1分频和8分频,各自生成代码,进行对比,发现生成的代码完全一样。 然后,我又查看手册,RCC时钟树中的这个位置是固定『/8』,也没有看到可『/1』的说明。 这里就留下一个问题: 你认为STM32CubeMX配置Cortex系统定时器时钟是有Bug吗? |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1205 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1225 浏览 1 评论
630 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
474 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1151 浏览 2 评论
1682浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
341浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
339浏览 3评论
331浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
308浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-2 06:00 , Processed in 1.011176 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191