免费咨询热线
177-5963-5229ABB PM783F 3BDH000364R0002 模块
ABB PM783F 3BDH000364R0002 模块
ABB PM783F 3BDH000364R0002 模块



2.1实验目的
熟悉STM32CubeIDE工具软件的使用。
掌握STM32CubeIDE软件的基本设计流程和设计步骤,能够使用工具进行设计、编程、仿真调试。
学习通用定时器的使用方法,掌握如何利用STM32MP157A芯片的通用定时器定时产生中断。
2.2实验环境
FS-MP1A开发平台
ST-Link仿真器
STM32CubeIDE开发软件
PC机 XP、Window7/10 (32/64bit)
2.3实验原理
STM32系列微控制器具有多种定时器,其中包括基本定时器,通用定时器,高级定时器。
几种定时器功能比较:
基本定时器:主要运用于定时器计数及驱动DAC
通用定时器:定时器定时计数、输入捕获、输出比较、PWM输出、使用外部信号控制定时器和定时器互连的同步电路
高级定时器:通用定时器的所有功能、带死区控制和紧急刹车,可用于PWM控制电机
本章节实验以通用定时器TIM3为例实现定时计数,计数到设置值后触发中断改变LED灯亮灭状态。
从下图可以看出定时器时钟TIM3挂载在APB1时钟总线上,在STM32CubeIDE软件中可配置总线时钟频率来确定定时器时钟。
基本定时器功能框图
从上图我们可以看到,基本定时器主要由下面几部分组成
时钟源
定时器要实现计数必须有个时钟源,基本定时器时钟只能来自内部时钟,高级控制定时器和通用定时器还可以选择外部时钟源或者直接来自其他定时器等模式。
控制器
定时器控制器控制实现定时器功能,控制定时器复位、使能、计数是其基础功能,基本定时器还专门用于 DAC转换触发。
计数器
基本定时器计数过程主要涉及到三个寄存器内容,分别是计数器寄存器(TIMx_CNT)、预分频器寄存器(TIMx_PSC)、自动重载寄存器(TIMx_ARR),这三个寄存器都是 16 位有效数字,即可设置值为 0至 65535。上图中预分频器 PSC,它有一个输入时钟 CK_PSC和一个输出时钟CK_CNT。输入时钟 CK_PSC 来源于控制器部分,基本定时器只有内部时钟源所以CK_PSC实际等于 CK_INT。在不同应用场所,经常需要不同的定时频率,通过设置预分频器 PSC的值可以非常方便得到不同的 CK_CNT,实际计算为:fCK_CNT等于 fCK_PSC/(PSC[15:0]+1)。下图中可看到将预分频器 PSC的值从 1改为 4时计数器时钟变化过程。原来是 1分频,CK_PSC和 CK_CNT频率相同。向 TIMx_PSC 寄存器写入新值时,并不会马上更新CK_CNT输出频率,而是等到更新事件发生时,把 TIMx_PSC 寄存器值更新到影子寄存器中,使其真正产生效果。更新为 4分频后,在 CK_PSC 连续出现 4个脉冲后 CK_CNT 才产生一个脉冲。