STM32笔记之十二:时钟不息工作不止,systic时钟应用

发布者:码农侠最新更新时间:2015-09-29 来源: eefocus关键字:STM32笔  systic  时钟应用 手机看文章 扫描二维码
随时随地手机看文章
a)        目的:使用系统时钟来进行两项实验——周期执行代码与精确定时延迟。

b)        初始化函数定义:

void SysTick_Configuration(void);

c)        初始化函数调用:

SysTick_Configuration();

d)        初始化函数:

void SysTick_Configuration(void)

{

  SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//时钟除8

  SysTick_SetReload(250000);                                                    //计数周期长度

  SysTick_CounterCmd(SysTick_Counter_Enable);                   //启动计时器

  SysTick_ITConfig(ENABLE);                                                     //打开中断

}

e)        在NVIC的初始化函数里面增加以下代码打开相关中断:

NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick, 1, 0);//中断等级设置,一般设置的高一些会少受其他影响

f)        在stm32f10x_it.c文件中找到void SysTickHandler 函数

void SysTickHandler(void)

{

执行代码

}

g)        简单应用:精确延迟函数,因为systic中断往往被用来执行周期循环代码,所以一些例程中使用其中断的启动和禁止来编写的精确延时函数实际上不实用,我自己编写了精确计时函数反而代码更精简,思路更简单。思路是调用后,变量清零,然后使用时钟来的曾变量,不断比较变量与延迟的数值,相等则退出函数。代码和步骤如下:

i.        定义通用变量:u16 Tic_Val=0; //变量用于精确计时

ii.        在stm32f10x_it.c文件中相应定义:

extern u16 Tic_Val;//在本文件引用MAIN.c定义的精确计时变量

iii.        定义函数名称:void Tic_Delay(u16 Tic_Count);//精确延迟函数

iv.        精确延时函数:

void Tic_Delay(u16 Tic_Count)               //精确延时函数

        Tic_Val=0;                           //变量清零

  while(Tic_Val != Tic_Count){printf("");}//计时

}

v.        在stm32f10x_it.c文件中void SysTickHandler 函数里面添加

     Tic_Val++;//变量递增

vi.        调用代码:Tic_Delay(10);   //精确延时

vii.疑问:如果去掉计时行那个没用的printf("");函数将停止工作,这个现象很奇怪
关键字:STM32笔  systic  时钟应用 引用地址:STM32笔记之十二:时钟不息工作不止,systic时钟应用

上一篇:STM32笔记之十一:捕捉精彩瞬间,脉冲方波长度捕获
下一篇:STM32笔记之十三:恶搞,两只看门狗

推荐阅读最新更新时间:2024-03-16 14:33

时钟芯片在电压监测仪校验装置中的应用
0 引言 电压监测统计仪是一种在线监测电网电压质量、统计每分钟瞬时电压、每分钟最大电压、每分钟最小电压以及平均电压、电压合格率、电压超上限率、电压超下限率等功能的仪表。从以上功能可得出,电压监测统计仪除了测量电压精度这一因素外,还有一重要因素就是时间的准确性。利用PCF8583串行时钟芯片成功的应用在电压监测仪校验装置中,既实现了电压的可程控信号输出,从而可测量电压监测统计仪的电压精度指标,又实现了一个标准时钟,从而可对电压监测统计仪的时间进行比对,实现校准。 1 PCF8583的基本功能特点 PCF8583是飞利浦公司推出的I2C总线接口实时时钟芯片,它可独立于CPU工作,不受CPU主晶振及共电容的影响,且计时准确。具有4
[应用]
低功耗MCU动态时钟分析与应用
随着IC技术的迅速发展和对消费电子产品需求的不断增长,大量的便携式设备被广泛应用于各种领域,从而使低功耗成为系统设计中越来越被关注的问题。功耗不但直接决定通常靠电池供电的移动设备的使用时间,而且极大地影响着芯片的尺寸、成本和性能。本文结合MSP430系列微处理器,详细论述了通过控制改变MCU的时钟频率来降低功耗的设计方法。    1 功耗产生的原因   在CMOS电路中,功耗损失主要包括静态功耗损失和动态功耗损失两部分。其中静态功耗主要是由反偏PN结的漏电流和晶体管的亚阈值电流引起的,其最主要的形式就是漏电损失。其实CMOS电路理论上不会有静电功耗损失,因为从供应电源到地面没有直接的路径,但实际上晶体管总会有漏电电流的出现,从而出
[电源管理]
低功耗MCU动态<font color='red'>时钟</font>分析与<font color='red'>应用</font>
单片机时钟芯片DS12887的应用
DS12887 是美国达接斯半导体公司(Dallas)最新推出的串行接口实时时钟芯片,采用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池,同时它与目前IBM AT计算机常用的时钟芯片MC146818B和DS1287管脚兼容,可直接替换。它所提供的世纪字节在位置32h,世纪寄存器32h到2000年1月1日将从19递增到20。 采用DS12887芯片设计的时钟电路无需任何外围电路和器件,并具有良好的微机接口。DS12887芯片具有微功耗,外围接口简单,精度高,工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟系统中。 DS12887主要功能简介 (1)内含一个锂电池,断电后运行十年以上不丢失数据。 (2)计秒,分,时
[单片机]
单片机<font color='red'>时钟</font>芯片DS12887的<font color='red'>应用</font>
PTN时钟同步技术及应用
摘要:时钟同步是分组传送网(PTN)需要考虑的重要问题之一。可以采用同步以太网、IEEE 1588v2、网络时间协议(NTP)等多种技术实现时钟同步。同步以太网标准的同步状态信息(SSM)算法存在时钟成环,以及难以对节点跟踪统计的问题。中兴通讯提出了一种扩展SSM算法可以改进时钟同步问题。在时间同步方面,由于NTP的精度还无法满足电信网的需求,仅采用1588v2又会带来收敛时间较慢、在网络负载较重时时间延迟精度容易受到影响等问题。中兴通讯提出了同步以太网基础的1588v2时间传递方案,对提高PTN网络中时间同步的精度起到了较好的作用。 关键字:分组传送网;同步以太网;时间同步;延迟 英文摘要:Clock sy
[网络通信]
SysTick功能总结
一、初始化SysTick 按1ms来设置systick,也可以除以1000000。按1us来设置 SysTick_Config(SystemCoreClock / 1000); //SysTick开启系统tick定时器并初始化其中断,1ms 二、systick的函数 // cycles per microsecond static volatile uint32_t usTicks = 0; // current uptime for 1kHz systick timer. will rollover after 49 days. hopefully we won't care. volatile uint32
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved