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

下载本文档

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

文档简介

STM32F4微控制器应用项目五直流电机调速系统设计STM32F4微控制器应用

薛绘息峨业技【知识目标】●掌握通用STM32F407ZGT6单片机定时器的结构与功能;●掌握通用STM32F407ZGT6单片机PWM

结构与功能;●了解标准库定时器函数的定义与功能。【能力目标】●能够应用标准库函数完成定时器功能的初始化参数配置和定时器

功能的设置;●掌握定时器设置时间标志位方式设计实时任务系统的方法;●能够应用标准库函数完成定时器的PWM

功能的初始化参数配置;●能够合理的分配单片机软硬件资源。【素质目标】●培养规范化程序设计习惯;●培养分析问题解决问题的能力;●培养阅读设计文档资料的能力。STM32F4微控制器应用项目五直流电机调速系统设计任务5.1

STM32

单片机定时设计LED闪烁任务5.2基于时间标志位的任务系统设计任务5.3基于PWM的直流电机调速控制STM32F4微控制器应用任务5.1

STM32单片机定时设计LED闪

烁【任务功能】采用定时器TIM4

的定时功能设计LED8

以周期为1秒的频率闪烁1.STM32

单片机定时器介绍2.定时器的基本定时功能设计周期1毫秒中断STM32F4微控制器应用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)□

时钟源-

只能来自内部时钟STM32F4微控制器应用STM32F4微控制器应用>1

0个通用定时器(TIM2~TIM5

、TIM9~TIM14)□

能-包含基本定时器功能;测量输入信号的脉冲宽度(输入捕获),或者生成输出波形(

输出比较、PWM

)。□

16位/32位可向上/下计数的定时器【TIM2、TIM5:32位向上/下;TIM3、TIM4:16

位向上/下;TIM9~TIM14:16

位向上】-

计数器寄存器(TIMx_CNTIM3

TIM4T)□

4个独立通道,可分别用于:-

获-

较-

PWM

生成(边沿和中心对齐模式)-单脉冲模式输出-预分频器寄存器(TIMx_PSC)-

自动重载寄存器(TIMx_ARR)□时钟源-

内部时钟-

外部时钟STM32F4微控制器应用>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。STM32F4微控制器应用STM32F407ZGT6定时器汇总TI1FP1TRC-T12FP2TRC

一TI3FP3TI3FP4TRC

一TI4FP3TI4FP4TRC

一IC1IC2IC3IC4预

IcPcc²I预

器IC3PS预

器预

器捕获/比

1

寄存

器捕获/比较2寄

存器捕获/比较3寄存

器捕获/比较4寄

器TIMx_异

或TIMx_CH1TIMx_CH2TIMx_CH3TIMx_CH4OC1BEE输

控输控输控输控出

制出

制出

出制TIMx_CH1TIMx_CH2TGI

制器从

控制

器编

码器接

口自

器停

止、

/

减TRGO到

器到DAC/ADC复位、使能、递增/递

减、计数UITI1TI2TI3TI4输

和边

沿

器输

和边

沿

器输

沿

器输

和边

沿

器内

部来自RCC的

TIMxCLKETRITR0

ITR1ITR2

ITR3时

钟(CK_INT)ETRFETRP极性

沿检

器ITRTRCTI2FP2CK_CNT

+/-CK_PSCCNT计

器输

器预

器外

部时

2到其

器复位、使能、递增/递减、计数外部时钟

信号1一

码信

号时

源异

或TIMx_CH4捕获

/比较1寄存

器捕获

/比较2

器捕获

/比较3

器cc2IcC31边

沿

器输

和输

沿

器输

沿

器ICPCc²1

IC2PS

U、cc³IIC3PSIC4PS□TIMx_CH1TIMx_CH3□TIMx_CH4自

器停

止、

/

减CK_CNT计

器TI1FP1TI1FP2TRC

-TI2FP1

TI2FP2

TRC-TI3FP3TRC-TI4FP3TI4FP4TRC-预分

器预

器预

分频

器预

器TI1T12TI3TI4内

钟(CK_INT)来自RCC的TIM×CLK捕获

/比较

4寄

器ETRFIC1IC3IC4OC2OC3OC4ETRITR3内

号出制

制出

制控

制器从模式输控

输控

控到

DAC/ADCTIMx_ETRCK_P

SCETRPTRCUI定

钟(CK_INT)来自RCC

的TIMxCLKTIMx_ETR

ETR

极性选择和边沿ITR0ITRITR2ITR3TI1F_EDETRFETRP输入滤波器TRC从模式控

器捕

/比

较1寄

器捕获

/比

2

器捕

/比

3

器捕

/比

4

器输入滤波器和边沿检测器输入滤波器和边沿检测器输

入滤

边沿检测器输入滤

沿检

器自动重载寄存器停止、清零或递增/递减计

(1-65536)TRGO到

其它

定时

器到

DAC/ADC复

使

/

数TI1FP1TRC

一TI2FP1

TI2FP2

TRC

一TI3FP3TI3FP4TRC

一TI4FP3TI4FP4

TRC

一CC21IC2PS

uCc31IC4PSTIMx_CH1TIMx_CH2]TIMx_CH3TIMx_CH4预分频器预分频器预分频器预分频器TIMx_CH1TIMx_CH2TIMx_CH3TIMx_CH4TI1TI2TI3TI41

-

6

5

5

3

6

频预分频器IC1IC2IC3IC4OC1OC2oC3输

出控

制输出制

制控

控检测器和预分频器TI1FP1-

TI2FP2CK_PSC编

码器CNTETRFUI预分频器预分频器预分频器cc31预分频器IC4PS预分频器计数器捕

/比

1

器捕

/比

2

器捕

/比

3

器捕

/比

4

器ETRF异

或TIMx_CH1TIMx_CH3TIMx_CH4TI2FP2TRC-TI3FP3TI3FP4TRC

一TI4FP34TRC

一IC2IC3IC4ETRFTRGI控

器输入滤波器和

边沿检测器输入滤波器和

边沿检测器输入滤波器和

边沿检测器输入滤波器和

边沿检测器外部时钟信号2时钟源模式来自RCCTIMx_ETRTRGo到其

定时器到

DAC/ADC复

位、

使

/

数]TIMx_CH1TIMx_CH3]TIMx_CH4内

钟(CK_INT)

的TIMxCLKETRITRO自动重载寄存器停止、清零或递增/递减

CK

CNTCK_PSCTI1FP1

IC1TRC

一ETRP输入滤波器TRCTI1TI2TI3T14UI输

控OC1OC4ITRT11F_EDcc31cc41出

制极性选择和边沿

检测器和预分频器TI1FP1-

TI2FP2输

控输

控输控自动重载寄存器停止、清零或递增/递减计数器捕

/比

较1

器捕

/比

2

器捕

/比

3

器IC4PS捕

/比

4

器时钟信号

时钟

1

钟(CK_INT)来自RCC的TIM×CLK

ETRFTIMx_CH1TIMx_CH2OC3OC4CK_PSCTI1FP1TH2FP1TI2FP2TRC

一TI3FP3TI3FP4TRC

一TI4FP3TI4FP4通

脚输

号TIMx_CH1TIMx_CH2TIMx_CH3TIMx

CH4TI1F_EDTI1

沿

测1滤波极性设置后

的信号2滤波极性设置后

的信号TIMx_ETR内

号0,1,2,3预分频器预分频器预分频器预分频器预分频器TRGO到

其它定时

器到DAC/ADC复

使

/

数输

和边

沿

器输入滤波器和边沿检测器输

和边沿检测器输入滤波器TI2FP2UI输

制TI1TI2TI3TI4极性选择和边沿检测器和预分频器ITRIC1IC2IC3IC4边沿检测器TRC

一触

发控

器控制器ETR/ITR0

ITR1

ITR2出

出制

出输

输控

输道道

通通编

口异

或ETRPTRGI控

制ETRF

时钟

源内

钟(CK_INT)来自RCC的TIMxCLKETR

极性选择和边沿检测

和预分

器ITR2ITR3TI1F_ED异

或TIMx_CH2TIMx_CH4ETRF输

器触

器从模

式控

器捕获/比较1寄存器捕获/比较2寄

存器捕获/比较3寄存

器捕获/比较4寄

器输

和边

沿

器输入滤波器和边

沿检

器输

和边

沿

器输

和TI1FP1TRC

一TI2FP1TI2FP2TRC-TI3FP3TI3FP4TRC-T14FP3

T

I4FP4TRC-TRGO到

器到

DAC/ADC复位、使能、递

/

减、计数通

1

后信

号通

2

后信

号]TIMx_CH3OC4编

器接

口自

器分

器分

器分

器分

器TI1TI2TI3T14IC1IC2IC3IC4停

止、

/

减CNT计

器IC2Ps

uIC3PSCK_PSC预

器出

制出制出

制出制输

控输控输

控输控预预预预UI捕获模式

钟(CK_INT)

来自RCC的TIMxCLKETRITR1ITR2ITR3输入信号的上升沿或下降沿ETRFTGI

器从

式控

器编

器计数最大值自动重载寄存器清

/

减计数器捕获/

比较1寄

器捕

/比较

2

器捕

/比

3

器捕

/比

4

器ETRFTRGO到其它定时器到

DAC/ADC复

位、

使

/

数UI上升沿或下降沿出现将CNT计数值保存,输出捕获信号TI1TI2TI3TI4输入滤波器和边沿检测器输入滤

边沿检测器输入滤波器和

边沿检测器输入滤波器和边沿检测器Ti1FP1TRC

一TI2FP1TRC

一TI3FP3

TI3FP4TRC

一TI4FP3

TI4FP4TRC

一输入滤波器TRCTI1FP1-TI2FP2停止

、+/-CC21TIMx_ETRTIMx_CH1TIMx_CH2TIMx_CH3TIMx_CH4IC1IC2预分频器信号分频预分频器预分频器IC3预分频器预分频器输出

制输出控

制输

出控

制输出控

制OC1oC3OC4ITRTI1F_ED极性选择和边沿检测器和预分频器TIMx_CHETRP计

计数值比

较捕获/

比较

1

器CCR1

计教值捕

/比

2寄

器捕

/比

3

器□TIMx_CHoC3OC4输入滤波器TGI

器TRC从

式控

器TIMx_ETR比较模式/PWM模式输入滤波器和边沿检测器输入滤

和边沿检测器输入滤波器和

边沿检测器输入滤波器和PSC预分频器预分频器预分频器预分频器预分频器内

钟(CK_INT)来自RCC的TIMxCLK

ETRFTRGO到其它定时器到

DAC/ADC复

位、

使

/

数计数最大值自动重载寄存器停

/

减极性选择和边沿检测器和预分频器ITRTI1F_EDTI1FP1TRC

一TI2FP1

TI2FP2

TRC

一TI3FP3

TI3FP4TRC

一TI4FP3TIMx_CH1TIMx_CH2TIMx_CH3TIMx

CH4TI1TI2TI3TI4输出控

制输出控

制输

出控

制输出IC1IC2IC3捕

/比

4

制ETRITR1ITR2ITR3TI4FP4TRC

一TI1FP1-

TI2FP2边沿检测器编

器ETRPETRFCNTUI_编

器计数最大值自动重载寄存器停止、清零或递增/递减计数器捕获/

比较1寄

器CCR

计数值捕

/比

2寄

器捕

/比

3

器TI1FP1-

TI2FP2PSC预分频器预分频器预分频器预分频器预分频器UI输

出控

制输出控

制输

出控

制输出输入滤波器TGI

器TRC从

式控

器输入滤波器和边沿检测器输入滤

和边沿检测器输入滤波器和

边沿检测器输入滤波器和内

钟(CK_INT)来自RCC的TIMxCLK

ETRFTRGO到其它定时器到

DAC/ADC复

位、

使

/

数TIMx_ETR单脉冲模式极性选择和边沿检测器和预分频器ITRTI1F_EDTI1FP1TRC

一TI2FP1

TI2FP2

TRC

一TI3FP3

TI3FP4TRC

一TI4FP3TIMx_CH1TIMx_CH2TIMx_CH3TIMx

CH4TI1TI2TI3TI4oC1oC3OC4IC1IC2IC3捕

/比

4

制ETRITR0ITR1ITR2ITR3TI4FP4TRC

一边沿检测器TIMx_CHETRPETRF_STM32F4微控制器应用2.定时器的基本定时功能设计周期1毫秒中断◆定时器定时程序设计步骤:①调用时钟开启函数开启定时器的时钟信号;②设置定时器参数,调用定时器定时初始化函数完成定时器的初始化;③设置定时器中断向量参数,并调用中断向量初始化函数;④选择定时器产生中断的中断信号;⑤启动定时器;⑥根据启动文件中中断向量响应函数的名字,重新设计中断响应函数;STM32F4微控制器应用◆定时器源文件和头文件创建打开设计项目,并在项目的hardware

文件夹下新建timer4

文件夹;>

在MDK

编辑界面下新建timer4.c和timer4.h,

并保存到timer4文件夹中;将timer4.c添加到MDK

界面下的hardware

包内;将timer4.h的路径添加到程序编译的包含路径列表内;将timer4.h

包含在sys.h内。STM32F4微控制器应用◆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的全局中断。STM32F4微控制器应用定时器4的初始化参数设置1)定时器4的时钟信号为APB1,APB1=42MHz,定时器4的时钟为84MHz;2)定时器4的预分频器值设置为83,实现输入时钟信号的84分频;3)定时器4的定时器的计数值设定为999,定时器4周期为1毫秒;4)定时器4的定时方式设置为升模式;5)初始化定时器中断向量的优先级;6)设置定时器4的溢出为触发定时器的中断方式;7)启动定时器4;STM32F4微控制器应用定时器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)STM32F4微控制器应用STM32F4微控制器应用任务5

.2基于时间标志位的任务系统设计【任务功能】采用定时器TIM4

的定时功能更新标志位设计任务调度系统。1.周期任务系统的构建原则2.定时器构建周期性任务系统STM32F4微控制器应用1.

周期任务系统的构建原则在单片机内处理器执行的任务一般分为微妙级任务、毫秒级任务。微妙级任务-最紧急的任务,一旦出现需要处理器马上进行处理,这种任务可以一般采用中断处理方式设计。毫秒级任务-

在main

函数的while循环语句内;-将设计任务根据执行需要可以划分为每1毫秒需要执行一次的任务,每10毫秒需要执行

一次的任务,每100毫秒执行一次的任务,每500毫秒执行的任务,每秒执行一次的任

务等任务等级STM32F4微控制器应用2.定时器构建周期性任务系统◆timer4.c的设计定义时间标志位,通过定时器的中断响应程序实现相应时间间隔将时间标志位置位,在主程序中通过查询对应的时间标志位,在对应时间标志位置后,执行对应执行周期的任务,并将时间标志位复位。◆timer4.h头文件设计STM32F4微控制器应用2.定时器构建周期性任务系统A)不同任务执行周期的设计方法1毫秒执行一次的任务:数码管的显示10毫秒执行一次的任务:键盘检测处理任务100毫秒执行一次的任务:液晶屏的刷新显示500毫秒执行一次的任务:LED8

的单灯闪烁1秒执行一次的任务:时钟进位操作、读取温度传感器的温度STM32F4微控制器应用2.定时器构建周期性任务系统B)

时间标志位方式构建任务系统定义代表不同时间间隔周期的时间标志;在主函数中查询对应的标志位状态,对应标志位置位则执行对应的任务、并清除标志位,确保每次标志位置位执行一次任务;中断响应程序中实现标志位的置位。STM32F4微控制器应用2.定时器构建周期性任务系统C)

主程序与定时器4中断程序构建任务系统定时器4中断程序实现时间标志位置位>主程序中查询标志位并执行任务中断响应程序响应时间短、任务函数执行时间短STM32F4微控制器应用任务5

.

3基于PWM

的直流电机调速控制【任务功能】采用定时器TIM3

的PWM

功能实现直流电机调速控制,通过WU

_KP启动电机,KEY1关闭电机,在启动状态下按下KEY2电机加速,KEY3

电机减速,可以实现电机的连续加、减速操作。1.PWM

介绍2.STM32F407ZGT6

驱动直流电机电路设计3.定时器TIM3的PWM功能4.定时器3的CH2通道PWM

程序设计1.PWM

介绍◆什么是PWM?PWM(PulseWidthModulation)简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在测量、通信、工控等方面。STM32F4微控制器应用

1

8

说STM32F4微控制器应用◆

PWM

的应用PWM

主要用于功率控制,如直流电机的调速。TI【设计任务】1.采用定时器4定时方式获得1毫秒

周期信号,采用中断方式对定时器4的

溢出进行计数,每500毫秒对LED8

状态修改一次。2.采用Proteus仿真方式实现LED8

的闪烁调试。STM32F4微控制器应用2.STM32F407ZGT6

驱动直流电机电路设计5VR2081.5KDiode

1N4148Q2089013Q207SUD50P06motorlMotorGNDGNDPA7

TIM3

CH2

PWMR2091K异

或TIMx_CH1TIMx_CH2TIMx_CH3TIMx_CH4TI1TI2TI3TI4输

和边

沿

器输

和边

沿

器输入

沿

器输

沿

器TI1FP1TRC一TI2FP1T12FP2TRC

一TI3FP3T13FP4TRC

一TI4FP34TI4FP4TRC

一IC1IC2IC3IC4预

器ic预

器预

器预

器3.定时器TIM3

的PWM

功能TRGO到

器到

DAC/ADC复位、使能、递增/递减、计数UI捕

/

1

存比较捕获/比较2寄存器CCF2计数值捕获/比较3寄存器捕获/比较4寄存器ETRF来自RCC的TIMxCLKETR比较模式/PWM模式编

器接口计数最大值自

器停

止、

/

减ETRP极

沿检

温馨提示

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

最新文档

评论

0/150

提交评论