STM32F103ZET6中有TIM1,TIM8两个高级定时器,每一定时器都有
1、一个16位向上、向下、向上/下自动装载计数器
2、一个16位预分频器和四个独立从输入输出通道
3、每一个通道都可用于输入捕获、输出比较、PWM和单脉冲模式(除了基本定时器,高级定时器和通用定时器都能产生PWM)
当高级计时器发生溢出的时候都能使重复计数器减一,当重复计数器减到0之后,再发生一次计时器溢出,就会导致一次事件更新。
如下图所示,当RCR寄存器数据为0时候,每次计数器溢出都会导致事件更新;当RCR寄存器数据为2时候,当发生2次计数器溢出的时候,再发生一次溢出就会触发事件触发,即每3次溢出都会发生一次事件更新。如果设置了软件更新重新同步,则会导致软件更新的时候会直接触发重复计数器和基本计时器重置。

PWM的周期和基本定时器一样是Tout=(ARR+1)*(PSC+1)/Ft(Ft=72M)
实验要求是通过定时器8通道1输出指定个数PWM输出,用于控制LED1的输出。
我们已经知道LED1的引脚是PE5,查询引脚图我们会得知TIM8_CH1对应引脚为PC6。

接下来编写我们的实验代码。
先编写头文件代码atim.h:
#ifndef __ATIM_H
#define __ATIM_H
#include "./SYSTEM/sys/sys.h"
extern TIM_HandleTypeDef g_timx_pwm_chy_handl

本文详细介绍了STM32F103ZET6微控制器中TIM1和TIM8高级定时器的功能,包括16位计数器、预分频器和输入输出通道。重点讨论了重复计数器的工作原理以及如何通过HAL库设置PWM输出。实验代码展示了如何初始化定时器8的通道1来控制LED1亮度,通过设置不同重复计数器值实现指定次数的PWM输出。
最低0.47元/天 解锁文章
5281

被折叠的 条评论
为什么被折叠?



