桌面时钟代码(桌面时钟代码怎么设置)

桌面时钟代码(桌面时钟代码怎么设置)欢迎关注 玩转单片机与嵌入式 公号 回复关键字获取更多免费视频和资料 回复 加群 单片机 STM32 硬件知识 硬件设计 经典电路 论文 毕业设计 3D 封装库 PCB 电容 TVS 阻抗匹配 资料 终端电阻 Keil 485 CAN 振荡器 USBCAN PCB 智能手环 智能家居 智能小车

大家好,我是讯享网,很高兴认识大家。



欢迎关注【玩转单片机与嵌入式】公号,回复关键字获取更多免费视频和资料 回复【加群】,【单片机】、【STM32】、【硬件知识】、【硬件设计】、【经典电路】、【论文】、【毕业设计】、【3D封装库】、【PCB】、【电容】、【TVS】、【阻抗匹配】、【资料】、【终端电阻】、【Keil】、【485】、【CAN】、【振荡器】、[USBCAN]、【PCB】、【智能手环】、【智能家居】、【智能小车】、【555】、【I2C】、【华为】、【中兴】,等……

问题

在进行开发时,程序中常常需要延时一段时间,很多人都会使用Delay(N), N为需要延时的时间(通常为毫秒级)。通常实现Delay(N)函数的方法为:

对于STM32系列微处理器来说,执行一条指令只有几十个ns,进行for循环时,要实现N毫秒的x值非常大,而且由于系统频率的宽广,很难计算出延时N毫秒的精确值。

针对STM32微处理器,需要重新设计一个新的方法去实现该功能,以实现在程序中使用Delay(N)。

解决方法

Cortex-M3的内核中包含一个SysTick时钟。SysTick为一个24位递减计数器, SysTick设定初值并使能后,每经过1个系统时钟周期,计数值就减1。计数到0时,SysTick计数器自动重装初值并继续计数,同时内部的COUNTFLAG标志会置位,触发中断(如果中断使能)。


讯享网

在STM32的应用中,使用Cortex-M3内核的SysTick作为定时时钟,设定每一毫秒产生一次中断,在中断处理函数里对N减一,在Delay(N)函数中循环检测N是否为0,不为0则进行循环等待;若为0则关闭SysTick时钟,退出函数。

这样的好处就是:延迟时间将不随系统时钟频率改变。

源代码

初始化相关模块 :

说明:外部晶振为8MHz,系统时钟为72MHz, SysTick的频率9MHz,SysTick产生1ms的中断

中断处理 :

注意:全局变量TimingDelay必须定义为volatile。

延时代码:

            TimingDelay = nTime; // 读取延时时间 

</span><span style="font-size:17px;" data-v-2505e99a>    while</span><span style="font-size:17px;" data-v-2505e99a>(TimingDelay != </span><span style="font-size:17px;" data-v-2505e99a>0</span><span style="font-size:17px;" data-v-2505e99a>); </span><span style="font-size:17px;" data-v-2505e99a>// 判断延时是否结束    </span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a>    SysTick_CounterCmd(SysTick_Counter_Disable); </span><span style="font-size:17px;" data-v-2505e99a>// 关闭SysTick计数器</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> </span><span style="font-size:17px;" data-v-2505e99a>     SysTick_CounterCmd(SysTick_Counter_Clear); </span><span style="font-size:17px;" data-v-2505e99a>// 清除SysTick计数器</span></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a>}</span></p><p data-v-2505e99a data-v-5b474d2a><strong style="font-size:17px;" data-v-2505e99a>应用代码</strong></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> 

讯享网

关注本公号,在后台回复【STM32】可以获取更多关于STM32单片机的相关视频和教程资料。

小讯
上一篇 2025-04-27 18:32
下一篇 2025-05-31 11:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/159670.html