历史上的今天
返回首页

历史上的今天

今天是:2025年04月23日(星期三)

正在发生

2018年04月23日 | stm32f4使用Systick实现延时

2018-04-23 来源:eefocus

使用Systick定时器实现延时


一、SysTick定时器特性


SysTick定时器是一个24位的递减计数器,即vlue自减等于0时触发中断,并重新加载load值,如此循环。

在stm32f4库文件中,默认将优先级设置为最低优先级,可进入函数SysTick_Config查看优先级设置。

SysTick是Cortex-M内核的一部分,因此只要是Cortex-M内核都有该定时器。

SysTick的时钟源可由HCLK产生,或则HCLK/8产生。

二、如何使用SysTick定时器


既然是定时器,那么至少应该设置2方面内容: 

1. 定时时间 

2. 定时时间到后做什么。


三、程序解析


1. SysTick定时器初始化


在SysTick定时器初始化需要注意SysTick时钟的选择,如果使用8分频一定要在SysTick_Config执行后,才执行时钟函数SysTick_CLKSourceConfig,否则时钟分频无效。


static void SysTickInit(void)

{

    #ifdef  SysTick_HCLK_Div8   /* SysTick时钟源为HCLK的8分频 */

    /* SystemCoreClock/1000/8      1ms 

      * SystemCoreClock/100000/8    10us

      * SystemCoreClock/1000000/8   1us        

      */

    SysTick_Config(SystemCoreClock/1000/8); 

    /* 时钟配置必须放在SysTick_Config函数后,不然不起作用  */

    SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);

    #else

    /****************************************

     *SystemCoreClock/1000      1ms         *

     *SystemCoreClock/100000    10us        *

     *SystemCoreClock/1000000   1us         *

     *****************************************/

    SysTick_Config(SystemCoreClock / 1000);

    /* 时钟配置必须放在SysTick_Config函数后,不然不起作用  */

    SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);/* 系统默认SysTick时钟源,可以不写 */  

    #endif

}

2.SysTick中断函数和延时函数


static volatile uint32_t    TimingDelay;

/* 延时函数 */

void Delay_Ms(uint32_t nTime)

{

  TimingDelay = nTime;

  while(TimingDelay != 0);

}


/* SysTick中断函数 */

void SysTick_Func(void)

{

    TimingDelay--;

}


推荐阅读

史海拾趣

三环(CCTC)公司的发展小趣事

随着科技的不断进步和市场环境的变化,三环(CCTC)公司认识到科技创新是企业持续发展的关键。因此,公司加大了研发投入力度,引进和培养了一批高素质的研发人才,建立了以博士、硕士为主组成的技术研发团队。同时,公司积极承担并完成多个国家、省级重点科研项目,不断开展新材料、新产品、新技术的研究与创新。这些努力使公司在多个领域取得了突破性的成果,实现了转型升级。

BALLUFF公司的发展小趣事

BALLUFF公司的历史可以追溯到1921年,由格布哈德·巴鲁夫(Gebhard Balluff)创建的一家机械修理厂开始。这家修理厂起初规模较小,但巴鲁夫凭借其对机械技术的精湛理解和不懈追求,逐渐将业务发展壮大。他通过不断的技术创新和产品升级,使得修理厂逐渐转型为一家专注于生产精密部件、车件和铣件的企业。这一转变不仅奠定了BALLUFF公司的工业基础,也为其日后在传感器领域的崛起打下了坚实基础。

Custom Electronics Inc公司的发展小趣事

随着科技的快速发展和市场需求的变化,CEI不断调整自身的发展战略和业务结构。公司加大了对新技术、新产品的研发投入,推动产业结构的升级和转型。同时,CEI还积极探索新的商业模式和市场机会,为公司的可持续发展提供了有力保障。

China Semiconductor Corp公司的发展小趣事

技术创新的同时,CSC也注重市场拓展和品牌建设。公司积极参与国际交流与合作,与多家国际知名企业建立了战略合作关系。同时,CSC加强了对国内市场的开拓,通过提供优质的产品和服务,赢得了客户的信赖和好评。随着品牌知名度的提升,CSC的产品逐渐在国内外市场上占据了一席之地。

鑫雁公司的发展小趣事

在短短几年内,聚洵半导体实现了业绩的快速增长。据公司董事长兼总经理张智才介绍,在2020年这一特殊年份,聚洵依然实现了业绩增长500%的佳绩,累计出货量超过2亿颗,成交客户数量达500多家。这一成绩不仅彰显了聚洵在产品研发和市场销售方面的实力,也赢得了业界的广泛认可。公司的典型终端客户包括美的、格兰仕、小米等知名品牌,进一步证明了聚洵产品在市场上的竞争力和影响力。

Hanghsing Enterprise Co Ltd公司的发展小趣事

为了更快地拓展市场,聚洵半导体积极寻求与国内外知名企业的合作。公司与世界领先的芯片制造公司台积电建立了晶圆代工合作关系,并在长电科技和华天科技进行封装测试,确保了产品的一流工艺和品质。此外,聚洵还与国内多家电子元器件电商平台如立创商城、华强芯城等建立了紧密的合作关系,通过线上线下双管齐下的分销渠道,将产品迅速推向市场。这些合作不仅提升了聚洵的品牌知名度,还极大地促进了其市场份额的增长。

问答坊 | AI 解惑

古代罗马人的厕所~~

那时候的上厕所可是公共事务,但是男女分开么?这点纪录片里没说。令我比较吃惊的是那时候就有坐便啦,而且还是这种布局,这是不是为了方便大家在如厕的时候交谈呢? 知道这个是什么吗?这是厕纸。据那位大伯介绍,罗马的厕所是没有厕纸的,但是 ...…

查看全部问答>

tcpmp交流群

我建了一个tcpmp的交流群 研究这方面的xdjm过来交流一下哈…

查看全部问答>

用sim300发送彩信问题

这个已经可以拨号上网,给我的一些资料是一些at命令,但是拨号上网是在开发平台上面设置就可以了,我不知道发送彩信是用at命令,还是socket网络编程发送,请大家赐教啊,,急啊,,,…

查看全部问答>

有用过MC145450的调制解调的片子没?

大家好,我最近用到MC145450芯片,我不明白发送1200接收150是什么意思,我想用一个芯子发一个片子收能否可行,难道我1200发150收么???…

查看全部问答>

STM8AD口的笨笨的问题

                                 STM8应该是总共有7个AD口,但是为什么在管脚图上PC4标有AIN2功能    PD2上标有AIN3的功能呢? 害得我设 ...…

查看全部问答>

测量交流电流的问题

请教各位大侠,测量交流电流0 ~100 A,用交流互感器好还是用电阻好?…

查看全部问答>

430launchpad 使用心得

收到430launchpad两周了,一直没时间体验。今天下午初次体验,实现了用官方例程和上位机程序用touchpad控制windows mediaplayer播放器,感觉很不错。分享给大家,下面是详细过程。         一、硬件准备:   ...…

查看全部问答>

关于web远程控制嵌入式设备

查了很久资料,发觉都是把服务器安装在嵌入式设备身上的。。 但是有几点不懂: 1.PC机怎么访问嵌入式设备?   嵌入式设备只是单单插了网线的喔,没有串口连接PC机的。  如果说直接用浏览器打开相关的IP地址的话,那是不是就 ...…

查看全部问答>

天气热了,来电清凉的电子作品。

这几天天气大热啊,热到什么程度呢?大概也不清楚。借着手中的LanuchPad和OLED做个温度计玩玩。 所谓无图无真相,先上图。 先是显示效果图。 没开空调之前。 开了一会儿之后。空调设定的24°。 整个全家福。 右边的lanuchPad是打酱油的 ...…

查看全部问答>

新人求问MSP430FLASH

如果Flash中已有若干字节,本次想再写入一个数,接着之前的地址写,那么之前的地址怎么获得? …

查看全部问答>