实验要求为通过定时器1通道1输出频率为1kHz,占空比为70%的PWM输出,输出模式设置为PWM1模式。
使能互补输出死区控制:设置DTG=100;使能刹车功能,刹车输入信号高电平有效,配置输出空闲状态。
以1kHz为例的话,Tout=1ms=(ARR+1)*(PSC+1)/Ft(Ft=72M),则可得PSC=71,ARR=999。
由下图可知,PE9为TIM1_CH1的引脚口,PE8为TIM1_CH1N(互补输出),PE15为TIM1的刹车控制。

而对于定时器1的重映射,我们对重映射寄存器输入11,实现完全映射,如下图所示。

接下来我们编写实验代码:
首先编写函数头文件atim.h:
#ifndef __ATIM_H
#define __ATIM_H
#include "./SYSTEM/sys/sys.h"
extern TIM_HandleTypeDef g_timx_cplm_pwm_handle;
void atim_timx_cplm_pwm_init(uint16_t arr, uint16_t psc);
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim);
void atim_timx_cplm_pwm_set(uint16_t ccr, uint8_t dtg);
#endif
接下来再编写函数文件atim.c:


1793

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



