STM32单片机技术与应用项目教程 课件 项目五 直流电机调速系统设计_第1页
STM32单片机技术与应用项目教程 课件 项目五 直流电机调速系统设计_第2页
STM32单片机技术与应用项目教程 课件 项目五 直流电机调速系统设计_第3页
STM32单片机技术与应用项目教程 课件 项目五 直流电机调速系统设计_第4页
STM32单片机技术与应用项目教程 课件 项目五 直流电机调速系统设计_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目五直流电机调速系统设计【知识目标】掌握通用STM32F407ZGT6单片机定时器的结构与功能;掌握通用STM32F407ZGT6单片机PWM结构与功能;了解标准库定时器函数的定义与功能。【能力目标】能够应用标准库函数完成定时器功能的初始化参数配置和定时器功能的设置;掌握定时器设置时间标志位方式设计实时任务系统的方法;能够应用标准库函数完成定时器的PWM功能的初始化参数配置;能够合理的分配单片机软硬件资源。【素质目标】培养规范化程序设计习惯;培养分析问题解决问题的能力;培养阅读设计文档资料的能力。项目五直流电机调速系统设计任务5.1STM32单片机定时设计LED闪烁任务5.2基于时间标志位的任务系统设计任务5.3基于PWM的直流电机调速控制任务5.1STM32单片机定时设计LED闪烁1.STM32单片机定时器介绍2.定时器的基本定时功能设计周期1毫秒中断【任务功能】采用定时器TIM4的定时功能设计LED8以周期为1秒的频率闪烁。1.STM32F4单片机的定时器介绍STM32F4单片机内部最多包含14个定时器:2个基本定时器(TIM6、TIM7)10个通用定时器(TIM2~TIM5、TIM9~TIM14)2个高级定时器(TIM1、TIM8)2个基本定时器(TIM6、TIM7)功能基本定时功能,生成时基;专门用于驱动数模转换器DAC。16位向上递增的定时器(计数:0~TIMx_ARR值)计数器寄存器(TIMx_CNT)预分频器寄存器(TIMx_PSC)自动重载寄存器(TIMx_ARR)时钟源只能来自内部时钟10个通用定时器(TIM2~TIM5、TIM9~TIM14)功能包含基本定时器功能;测量输入信号的脉冲宽度(输入捕获),或者生成输出波形(输出比较、PWM)。16位/32位可向上/下计数的定时器

【TIM2、TIM5:32位向上/下;TIM3、TIM4:16位向上/下;TIM9~TIM14:16位向上】计数器寄存器(TIMx_CNTIM3和TIM4T)预分频器寄存器(TIMx_PSC)自动重载寄存器(TIMx_ARR)时钟源内部时钟外部时钟4个独立通道,可分别用于:输入捕获输出比较PWM生成(边沿和中心对齐模式)单脉冲模式输出

2个高级定时器(TIM1、TIM8)功能包含基本定时器功能;测量输入信号的脉冲宽度(输入捕获),或者生成输出波形(输出比较、PWM和带死区插入的互补PWM)。可向上/下计数的定时器

16位计数器寄存器(TIMx_CNT)16位预分频器寄存器(TIMx_PSC)16位自动重载寄存器(TIMx_ARR)8位重复计数器(TIMx_RCR)时钟源内部时钟外部时钟定时器种类位数计数器模式产生DMA请求捕获/比较通道互补输出特殊应用场景高级定时器(TIM1,TIM8)16向上,向下,向上/下可以4有带可编程死区的互补输出。通用定时器(TIM2,TIM5)32向上,向下,向上/下可以4无通用。定时计数,PWM输出,输入捕获,输出比较。通用定时器(TIM3,TIM4)16向上,向下,向上/下可以4无通用。定时计数,PWM输出,输入捕获,输出比较。通用定时器(TIM9~TIM14)16向上没有2无通用。定时计数,PWM输出,输入捕获,输出比较。基本定时器(TIM6,TIM7)16向上可以0无主要应用于驱动DAC。STM32F407ZGT6定时器汇总(1-65536)捕获模式输入信号的上升沿或下降沿信号分频上升沿或下降沿出现将CNT计数值保存,输出捕获信号计数最大值比较模式/PWM模式计数最大值CCR1计数值计数值比较单脉冲模式计数最大值CCR1计数值2.定时器的基本定时功能设计周期1毫秒中断定时器定时程序设计步骤:调用时钟开启函数开启定时器的时钟信号;设置定时器参数,调用定时器定时初始化函数完成定时器的初始化;设置定时器中断向量参数,并调用中断向量初始化函数;选择定时器产生中断的中断信号;启动定时器;根据启动文件中中断向量响应函数的名字,重新设计中断响应函数;定时器源文件和头文件创建打开设计项目,并在项目的hardware文件夹下新建timer4文件夹;在MDK编辑界面下新建timer4.c和timer4.h,并保存到timer4文件夹中;将timer4.c添加到MDK界面下的hardware包内;将timer4.h的路径添加到程序编译的包含路径列表内;将timer4.h包含在sys.h内。timer4.c文件编写

在timer4.c内编写定时器初始化程序,定义一个全局变量用于对定时器溢出的次数进行计数,每发生一次溢出,计数器的值加1,当计数器计数值为500则将发光二极管LED8状态取反,并将计数器值清零。

定时器4的时钟采用内部时钟,定时器4的计数时钟为APB1,APB1的时钟频率为42MHz,因此定时器的时钟为84MHz,对定时器4的时钟预分频值设定为83,对时钟84分频,因此定时器最终的计数时钟频率为1MHz,定时器4的工作模式设置为递增模式,最大值设置为999,定时器的定时周期为1000,因此定时器定时的周期为1毫秒,采样滤波数为1次,并使用定时器的预装载功能,定时器4全局中断抢占优先级设置为1,响应优先级设置为0,并使用定时器的更新触发定时器4的全局中断。定时器4的初始化参数设置1)

定时器4的时钟信号为APB1,APB1=42MHz,定时器4的时钟为84MHz;2)

定时器4的预分频器值设置为83,实现输入时钟信号的84分频;3)

定时器4的定时器的计数值设定为999,定时器4周期为1毫秒;4)

定时器4的定时方式设置为升模式;5)初始化定时器中断向量的优先级;6)设置定时器4的溢出为触发定时器的中断方式;7)启动定时器4;定时器4的中断响应函数设计1)

判断中断是否为定时器4的溢出触发定时器4的中断;2)

清除定时器4的溢出中断标志;3)

定时器4溢出计数器加1;4)

判断定时器4溢出计数器为500则LED8状态取反,并将定时器4溢出计数器清零;定时器4头文件设计主函数设计#ifndef__TIMER4_H__#define__TIMER4_H__externu32Timer4_OV_Counter;externvoidTIM4_Configure(void);#endif#include"sys.h"intmain(void){delay_Init(168);//延时函数初始化LED_Configure();//LED端口初始化BEEP_Configure();//蜂鸣器端口初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);TIM4_Configure();while(1) { }}任务5.2基于时间标志位的任务系统设计1.周期任务系统的构建原则2.定时器构建周期性任务系统【任务功能】采用定时器TIM4的定时功能更新标志位设计任务调度系统。1.周期任务系统的构建原则在单片机内处理器执行的任务一般分为微妙级任务、毫秒级任务。微妙级任务最紧急的任务,一旦出现需要处理器马上进行处理,这种任务可以一般采用中断处理方式设计。毫秒级任务可以放在main函数的while循环语句内;将设计任务根据执行需要可以划分为每1毫秒需要执行一次的任务,每10毫秒需要执行一次的任务,每100毫秒执行一次的任务,每500毫秒执行的任务,每秒执行一次的任务等任务等级2.定时器构建周期性任务系统timer4.c的设计

定义时间标志位,通过定时器的中断响应程序实现相应时间间隔将时间标志位置位,在主程序中通过查询对应的时间标志位,在对应时间标志位置后,执行对应执行周期的任务,并将时间标志位复位。timer4.h头文件设计A)不同任务执行周期的设计方法1毫秒执行一次的任务:数码管的显示10毫秒执行一次的任务:键盘检测处理任务100毫秒执行一次的任务:液晶屏的刷新显示500毫秒执行一次的任务:LED8的单灯闪烁1秒执行一次的任务:时钟进位操作、读取温度传感器的温度2.定时器构建周期性任务系统B)时间标志位方式构建任务系统定义代表不同时间间隔周期的时间标志;在主函数中查询对应的标志位状态,对应标志位置位则执行对应的任务、并清除标志位,确保每次标志位置位执行一次任务;中断响应程序中实现标志位的置位。2.定时器构建周期性任务系统C)主程序与定时器4中断程序构建任务系统定时器4中断程序实现时间标志位置位主程序中查询标志位并执行任务中断响应程序响应时间短、任务函数执行时间短2.定时器构建周期性任务系统任务5.3基于PWM的直流电机调速控制1.PWM介绍2.STM32F407ZGT6驱动直流电机电路设计【任务功能】采用定时器TIM3的PWM功能实现直流电机调速控制,通过WU_KP启动电机,KEY1关闭电机,在启动状态下按下KEY2电机加速,KEY3电机减速,可以实现电机的连续加、减速操作。3.定时器TIM3的PWM功能4.定时器3的CH2通道PWM程序设计什么是PWM?

PWM(PulseWidthModulation)简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在测量、通信、工控等方面。1.PWM介绍PWM的应用PWM主要用于功率控制,如直流电机的调速。2.STM32F407ZGT6驱动直流电机电路设计【设计任务】

1.采用定时器4定时方式获得1毫秒周期信号,采用中断方式对定时器4的溢出进行计数,每500毫秒对LED8的状态修改一次。2.采用Proteus仿真方式实现LED8的闪烁调试。比较模式/PWM模式计数最大值CCR2计数值计数值比较3.定时器TIM3的PWM功能CCR2=200PWM1模式有效输出电平状态为高电平

CCR2=200PWM2模式有效输出电平状态为高电平

1)

开启定时器的硬件时钟和PWM输出引脚端口的时钟;2)

初始化PWM输出引脚的I/O端口,并将端口设置为AF模式;3)

将端口重映射为PWM输出端口;4)

初始化定时器的基本定时功能;5)

初始化PWM工作模式;6)

根使能定时器;7)调整定时的比较寄存器值实现输出的PWM占空比修改。标准库STD的PWM设计步骤4.定时器3的CH2通道PWM程序设计打开设计项目,并在项目的hardware文件夹下新建timer4文件夹;在MDK编辑界面下新建timer4.c和timer4.h,并保存到timer4文件夹中;将timer4.c添加到MDK界面下的hardware包内;将timer4.h的路径添加到程序编译的包含路径列表内;将timer4.h包含在sys.h内。定时器3的CH2通道PWM初始化程序设计定时器4增模式下PWM输出设置参数PWM周期(定时器定时的计数值+1)PWM的工作模式(PWM1或PWM2)输出有效电平状态(高电平或低电平)PWM通道输出使能比较寄存器的设定值比较寄存器的预装载使能设置直流电机调速按键功能方案1)定义PWM输出的高电平输出值变量调速过程中修改该变量值并将修改后的变量值写入定时器3通道2的比较寄存器中WK_UP按键启动直流电机:定义直流电机运行状态标志,当电机处于停止状态,按下WK_UP按键则启动直流电机,LED1点亮。KEY1按键关闭直流电机:当电机处于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论