4334|4

1071

帖子

7

TA的资源

纯净的硅(中级)

楼主
 

SysTick [复制链接]

本帖最后由 dj狂人 于 2014-12-17 22:11 编辑

                                       
         SysTick是一个24位的定时器,采用递减方式计数,作为cortex-M3的标配,SysTick是学stm32或者是RTos不得不面对的,


只要是基于cortex-M3内核的单片机都有一个SysTick这对在程序移植的时候可以省去不少功夫。今天就用SysTick小试牛刀,做了


个呼吸灯,可是折腾了半天,程序老报错,说函数没有定义,可明明是按用户手册上说明来做的,最后才发现原来是我固件库的


问题,固件库是3.5版本的,移除了一些老版本上关于SysTick的驱动函数。新版本的话只要调用SysTick_Config(uint32_t ticks)这

个函数,然后用SysTick_Handler(void) 编写中断服务程序就可以使用SysTick了。

         调用SysTick_Config(uint32_t ticks)需要我们传一个计数值进去,比如系统系统位72MHz,那么机器周期就是1/72000000,这


是计一个数所花的时间,那么如果我们需要定时1S的话,需要计  1/1/72000000 也就是72000000个数,但是由于我们的SysTick


是24位的,他最大能计2的24次方 也就是 16777215 个数,所以如果我们要定时1S的话,还需在程序上再处理一下。

        SysTick_Config(uint32_t ticks)定义在 core_cm3.h文件中, 他的函数原型是这样的


static __INLINE uint32_t SysTick_Config(uint32_t ticks)
{
         if (ticks > SysTick_LOAD_RELOAD_Msk)  return (1);                      //这里是判断计数值ticks是否大于 16777215,若大于,退出

         SysTick->LOAD  = (ticks & SysTick_LOAD_RELOAD_Msk) - 1;        //将计数值加载到寄存器中
         NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);  //设置systick定时器中断优先级
         SysTick->VAL   = 0;                                          
         SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk |
                                         SysTick_CTRL_TICKINT_Msk   |
                                            SysTick_CTRL_ENABLE_Msk;                     //使能systick定时器及中断   
          return (0);                                             
}

此帖出自stm32/stm8论坛

最新回复

赞! 这个我们这边叫嘀嗒时钟的,移植的时候真的很需要它。  详情 回复 发表于 2014-12-17 22:13
点赞 关注
 

回复
举报

3414

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
嗯,进来学习一下
此帖出自stm32/stm8论坛

点评

最近在学stm32,把遇到的问题记录下来,希望能帮到遇到同样问题的人,也欢迎大家能对我还不了解的内容进行补充  详情 回复 发表于 2014-12-17 22:19
 
个人签名

So TM what......?

 


回复

1560

帖子

24

TA的资源

五彩晶圆(初级)

板凳
 
赞! 这个我们这边叫嘀嗒时钟的,移植的时候真的很需要它。
此帖出自stm32/stm8论坛

点评

有机会还要请教请教  详情 回复 发表于 2014-12-17 22:21
 
个人签名这孩子,成熟的象征,理智的典范。
 

回复

1071

帖子

7

TA的资源

纯净的硅(中级)

4
 
ljj3166 发表于 2014-12-17 22:07
嗯,进来学习一下



最近在学stm32,把遇到的问题记录下来,希望能帮到遇到同样问题的人,也欢迎大家能对我还不了解的内容进行补充
此帖出自stm32/stm8论坛
 
 
 

回复

1071

帖子

7

TA的资源

纯净的硅(中级)

5
 
lonerzf 发表于 2014-12-17 22:13
赞! 这个我们这边叫嘀嗒时钟的,移植的时候真的很需要它。




有机会还要请教请教
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表