为什么程序到tim3

发布网友 发布时间:2022-04-23 08:49

我来回答

1个回答

热心网友 时间:2022-06-18 14:31

最好用库函数的形式来写程序,易懂,好移植!
TIM_OCInitTypeDef TIM_OCInitStructure;//定义结构体
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//定义结构体
/* 打开定时器3外设时钟 */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3 , ENABLE);

/* 定时器3基本定时器设置 */
/* 定时器从0计数到255为一个定时周期 */
TIM_TimeBaseStructure.TIM_Period = 255;

/* 设置预分频 2000 分频 */
TIM_TimeBaseStructure.TIM_Prescaler = 1999;

/* 设置时钟分频系数,此处未分频 */
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;

/* 向上计数模式 */
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

/* 基本定时器初始化 */
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

/* 定时器3PWM设置 PWM1 模式 */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;

/* 使能输出 */
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;

/* 设置初始 PWM 脉冲宽度为 0 */
TIM_OCInitStructure.TIM_Pulse = 0;

/* 当定时器计数值小于 TIM_Pulse 时为低电平 */
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;

/* TIM3的CH1初始化 */
TIM_OC3Init(TIM3, &TIM_OCInitStructure);

/* 使能的预装载寄存器 */
TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);

/* 使能 TIM3 重载寄存器 ARR */
TIM_ARRPreloadConfig(TIM3, ENABLE);

/* 使能定时器3 */
TIM_Cmd(TIM3, ENABLE);

/* 使能定时器3的 update中断 */
TIM_ITConfig(TIM3,TIM_IT_Update, ENABLE);

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com