完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在ARM Cortex-M3内核中有一个Systick定时器,一个24bit的倒计数定时器,当计数到0时,它就会从Load寄存器中自动重装定时初值,只要不把CTRL寄存器中的ENABLE清0,它就永不停。对于滴答定时器的理解主要分为下面几项:
1. 滴答定时器的时钟来源 看上面的图会有一个错觉,以为滴答定时器是系统时钟的1/8,其实不是,滴答定时器的时钟既可以是HCLK/8,也可以是HCLK,这个是通过CTRL寄存器进行设定的,了解这一点,对于操作系统的时钟计算很重要,因为要精确计算时钟时间。 2. 滴答定时器的寄存器。 3. 滴答定时器的库函数 1)寄存器的定义: 在core_cm3.h中(此文件在我的eclipse工程目录:D:c_workspacertuarchst-m3lstlibcmsis) 此结构体被define为SysTick: #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!《 SysTick configuration struct */ 2)设定步骤: ①选择时钟源:misc.c(D:c_workspacertuarchst-m3lstlibsrc) 其中这两种时钟源 : SysTick_CLKSource_HCLK_Div8 外部时钟 72/8=9M SysTick_CLKSource_HCLK 内部时钟 HCLK=72M ②设定重载数 ③开启中断 ④启动滴答定时器 ②③④:core_cm3.h 解析: 作用: 使能Systick定时器,开启SysTick中断,配置中断时间间隔 参数ticks: 设置多少个Systick时钟周期产生一次中断 __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) { if ((ticks - 1) 》 SysTick_LOAD_RELOAD_Msk) return (1); /* ticks参数有效性检查 */ SysTick-》LOAD = ticks - 1; /* 设置重装载值, -1:因为装载时消耗掉一个systick时钟周期*/ NVIC_SetPriority (SysTick_IRQn, (1《《__NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt 配置NVIC */ SysTick-》VAL = 0; /* 初始化VAL=0,使能Systick后立刻进入重装载 */ SysTick-》CTRL = SysTick_CTRL_CLKSOURCE_Msk | *选择时钟源* SysTick_CTRL_TICKINT_Msk | *开启Systick中断* SysTick_CTRL_ENABLE_Msk; /* 使能Systick定时器 */ return (0); /* Function successful */ } SysTick_Handler()处理: void SysTick_Handler(void) { rt_interrupt_enter(); rt_tick_increase(); rt_interrupt_leave(); } 说明:我的工程是eclipse工程,用的是rt_thread系统。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 08:06 , Processed in 1.357142 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号