完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Cortex-M3处理器内部包含了一个简单的定时器。因为所有的CM3芯片都带有这个定时器,软件在不同 CM3器件间的移植工作就得以化简。该定时器的时钟源可以是内部时钟(FCLK,CM3上的自由运行时钟),或者是外部时钟( CM3处理器上的STCLK信号)。不过,STCLK的具体来源则由芯片设计者决定,因此不同产品之间的时钟频率可能会大不相同。因此,需要检视芯片的器件手册来决定选择什么作为时钟源。
SysTick定时器被捆绑在NVIC中,用于产生systick异常。在以前,操作系统还有所有使用了时基的系统,都必须一个硬件定时器来产生需要的“滴答”中断,作为整个系统的时基。滴答中断对操作系统尤其重要。例如,操作系统可以为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心跳”的节律。 Stm32系统嘀嗒校准值固定为9000,当系统嘀嗒时钟设定为9MHz(HCLK/8的最大值) ,产生1ms 时间基准。 9M/9000=1000;1/1000=1MS 校准值:系统嘀嗒校准值固定为9000,当系统嘀嗒时钟设定为9MHz(HCLK/8的最大值),产生1ms时间基准。 delay函数 static u8 fac_us=0;//us延时倍乘数 static u16 fac_ms=0;//ms延时倍乘数 //初始化延迟函数 //SYSTICK的时钟固定为HCLK时钟的1/8 //SYSCLK:系统时钟 void delay_init(u8 SYSCLK) //72 { //1.。..1 1011 SysTick-》CTRL&=0xfffffffb;//bit2清空,选择外部时钟 STCLK = HCLK/8= 9M/s fac_us=SYSCLK/8;// SYSCLK为72,所以fac_us为9 fac_ms=(u16)fac_us*1000; } //延时nms //注意nms的范围 //SysTick-》LOAD为24位寄存器,所以,最大延时为: //nms《=0xffffff*8*1000/SYSCLK //SYSCLK单位为Hz,nms单位为ms //对72M条件下,nms《=1864 void delay_ms(u16 nms) { u32 temp; SysTick-》LOAD=(u32)nms*fac_ms;//时间加载(SysTick-》LOAD为24bit) //(nms取值范围2~24) SysTick-》VAL =0x00; //清空计数器 清标志位 SysTick-》CTRL|=0x01; //开始倒数 do { temp=SysTick-》CTRL; } while(temp&0x01 && !(temp&(1《《16)));//等待时间到达 SysTick-》CTRL=0x00; //关闭计数器 SysTick-》VAL =0X00; //清空计数器 清标志位 } //延时nus //nus为要延时的us数。 void delay_us(u32 nus) { u32 temp; SysTick-》LOAD=nus*fac_us; //时间加载 SysTick-》VAL=0x00; //清空计数器 SysTick-》CTRL=0x01 ; //开始倒数 do { temp=SysTick-》CTRL; } while(temp&0x01&&!(temp&(1《《16)));//等待时间到达 SysTick-》CTRL=0x00; //关闭计数器 SysTick-》VAL =0X00; //清空计数器 } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1936浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
729浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
569浏览 3评论
594浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
552浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 17:22 , Processed in 0.865775 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号