《嵌入式应用技术——基于STM32固件库编程》课件 定时器.ppt

《嵌入式应用技术——基于STM32固件库编程》课件 定时器.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
定时器 SysTick定时器 SysTick(系统定时器)属于Cortex M4内核的一个外设,内嵌在NVIC中。系统定时器是一个24bit的向下递减的计数器,计数器每计数一次的时间为1/SYSCLK(SYSCLK为系统时钟)。 编号 优 先 级 优先级类型 名称 说明 地址 - - - - 没有异常运行 0X0000 0000 - -3 固定 Reset 复位 0X0000 0004 -14 -2 固定 NMI 不可屏蔽中断。来自 NMI输入脚 0X0000 0008 - -1 固定 HardFault 所有类型的错误 0X0000 000C -12 0 可编程 MemManage 存储器管理 0X0000 0010 -11 1 可编程 BusFault 预取指失败,存储器访问失败 0X0000 0014 -10 2 可编程 UsageFault 未定义的指令或非法状态 0X0000 0018 - - - - 保留 0X0000 001C-0X0000 002B -5 3 可编程 SVCall 通过 SWI 指令调用的系统服务 0X0000 002C -4 4 可编程 Debug Monitor 调试监控器 0X0000 0030 - - - - 保留 0X0000 0034 -2 5 可编程 PendSV 可挂起的系统服务 0X0000 0038 -1 6 可编程 SysTick 系统嘀嗒定时器 0X0000 003C 系统时钟SYSCLK 系统时钟来源可以是:HSI、PLLCLK、HSE PLL的主要作用是对时钟进行倍频或分频,把时钟输出到各个功能部件,倍频的倍数称为倍频因子,分频时则称为分频因子。 参数 说明 取值范围 M VCO 输入时钟 分频因子 2~63 N VCO 输出时钟 倍频因子 192~432 P PLLCLK 时钟分频因子 2/4/6/8 Q OTG FS,SDIO,RNG 时钟分频因子 4~15 系统时钟SYSCLK 设置系统时钟 stm32f4xx.h可以设置外部晶振频率,在第144行,找到#define HSE_VALUE,系统默即25MHz。 倍/分频因子设置在system_stm32f4xx.c的第371行,找到#define PLL_M,这里默认值是25, #define PLL_Q,默认值是7, #define PLL_N,默认值是336, 找到#define PLL_P,默认值是2。 系统默认外接晶振是25MHz,M=25,N=336,P=2 可以计算出默认值的SYSCLK是168Mhz。 SysTick时钟 内核时钟与Cortex系统时钟(SysTick使用的时钟)是通过分频因子传递的。 在固件库里设置SysTick时钟源的函数是SysTick_CLKSourceConfig() 形参可以是:SysTick_CLKSource_HCLK 表示不分频 SysTick_CLKSource_HCLK_Div8 表示8分频 函数使用方法:SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK); 表示不分频使用内核时钟 SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); 表示使用内核时钟8分频。 SysTick相关寄存器 寄存器名称 寄存器描述 CTRL SysTick 控制及状态寄存器 LOAD SysTick 重装载数值寄存器 VAL SysTick 当前数值寄存器 CALIB SysTick 校准数值寄存器 1. CTRL寄存器: bit[0] : ENABLE systick使能位 0=关闭systick功能,1=开启systick功能 bit[1] : TICKINT systick中断使能位 0=关闭systick中断,1=开启systick中断 bit[2] : CLKSOURCE systick时钟源选择位 0=使用HCLK/8时钟源 1=使用HCLK时钟源 bit[16]: COUNTFLAG systick计数比较标志,如果计数器达到0,则读入为1;当读取或清除当前计数器值时,将自动清除为0; SysTick相关寄存器 2. LOAD寄存器 定时器的工作原理:“系统定时器SysTick是一个24bits的向下的计数器,当计数寄存器的值递减到0的时候系统定时器会产生一次中断,初值会拷贝到计数寄存器中,再一次从头向下减,以此循环往复”。这个“初值”存放在SysTick_LOAD寄存器。当SysTick定时器递减到0后,LOAD寄存器的值会自动装载到SysTick_VAL。

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档