毕业论文--高级控制定时器的研究.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
毕业设计(论文) STM32系列(Cortex-M3) 高级控制定时器的研究 学生姓名: 熊 辉 学部(系): 信息学部 专 业 班 级: 通信0702 指 导 教 师: 郑汉麟 Cortex-M3的意义 随着单片机市场的规模越来越大,各行各业对单片机的功能要求越来越高,那么处理器和软件的性能要求就会越来越高。在这样的环境下,ARM Cortex-M3处理器,作为Cortex系列的处女作,为了让32位处理器在单片机市场上占主导的地位,轰轰烈烈地诞生了 。 现在Cortex-M3产品已经面世,提供更多的指令,更高效能,同时也更易用,价值也相当低。不但可令产品提供更多的功能,软件的开发和测试也容易得多,使产品能更早推出市场。 Cortex-M3 处理器的性能是ARM7的两倍,它是一个低功耗的处理器,具有门数少、中断延迟小、调试容易等特点。Cortex-M3 处理器使用了ARM v7-M 体系结构,是一个可综合的、高度可配置的处理器。 高级控制定时器 STM32中有两个非常重要的定时器分别是高级控制定时器和通用定时器。高级控制定时器(TIM1)和通用定时器(TIMx)是完全独立的,不共享任何资源。 高级控制定时器,简称TIM1,由一个自动重载的16位计数器组成,它由可编程的预分频器驱动。该定时器可用于多种场合,包括测量输入信号的脉冲宽度(输入捕获),产生输出波形(输出比较,PWM, 嵌入“死区时间”的互补PWM…)。 高级控制定时器不但具有通用定时器的功能而且还具有一些其他特殊的功能,例如具有可编程“死区时间”的补偿输出,循环计数器更新定时器寄存器的值,打断输入以使定时器的输出信号进入复位或一个已知的状态,打断输入产生中断/DMA等功能。这些特殊的功能归功于寄存器的不同。高级控制定时器比通用定时器多两个寄存器。这两个寄存器是循环计数器的寄存器(TIM1_RCR),打断和死区寄存器(TIM1_BDTR)。 一般情况下,对于互补输入和死区插入的运用非常简单。高级控制定时器能输出两个补偿信号,并管理输出信号的即时接通和切断.这就是通常所说的死区。需要依赖连接到输出的设备和这些设备的特性(如电平转换的固有延迟,电源转换引起的延时等)对死区时间进行调整.。而对于使用打断功能,依据相应的控制位,输出使能信号和无效电平都会被修改。所以对于高级控制定时器的实验,应该对高级控制定时器进行控制,并且使之各通道输出插入了死区的互补的PWM输出。 高级控制定时器实验设计 实验简介 高级控制定时器能输出两个补偿信号,并管理输出信号的即时接通和切断.这就是通常所说的死区。需要依赖连接到输出的设备和这些设备的特性(如电平转换的固有延迟,电源转换引起的延时等)对死区时间进行调整.。而对于使用打断功能,依据相应的控制位,输出使能信号和无效电平都会被修改。所以对于高级控制定时器的实验,应该对高级控制定时器进行控制,并且使之各通道输出插入了死区的互补的PWM输出。 实验的目的 了解高级控制定时器与通用定时器不同和相同之处。 掌握高级控制器各个寄存器的功能。 熟练运用软件keil u vision3和操作EduKit-M3实验箱。 源代码的注解 源代码思路过程: 1.比较/捕获寄存器的初始化和赋值。 2.主函数和TIM1的配置的描述。 3. RCC 设置函数。 4. GPIO 设置函数。 5. NVIC设置函数。 比较/捕获寄存器的初始化和赋值 u16 capture = 0; /*比较/捕获计数器初始化*/ u16 CCR1_Val = 0x1FFF; u16 CCR2_Val = 0x0FFF; /* 赋值CCR1,CCR2,CCR3 */ u16 CCR3_Val = 0x07FF; ErrorStatus HSEStartUpStatus; 主函数和TIM1的配置的描述 TIM_DeInit(TIM1); /* 调用TIM1外围函数配置*/ /* 下面是Time 基本配置 */ TIM1_TimeBaseStructure.TIM_Prescaler = 0x0; /*TIM_Prescaler的值为0x0*/ TIM1_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Down; /* 向下计数模式*/ TIM1_TimeBaseStructure.TIM_Period = 0xFFFF; /* 预频分器的值为0xFFFF*/ TIM1_TimeBaseStructure.TIM_ClockDivision =

文档评论(0)

企业文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档