中级会员
 
- 积分
- 341
- 金钱
- 341
- 注册时间
- 2017-9-13
- 在线时间
- 48 小时
|
1金钱
#include "gpioe_init.h"
#include "tim1_pwm.h"
#include "misc.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_tim.h"
void tim1_pwminit()
{
TIM_TimeBaseInitTypeDef tim1_baseinit;
GPIO_InitTypeDef GPIO_E8E13;
TIM_OCInitTypeDef tim1_OCinit;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_FullRemap_TIM1,ENABLE);//重映射
GPIO_E8E13.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_13;
GPIO_E8E13.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_E8E13.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOE,&GPIO_E8E13);//PE8,PE13 重映射为TIM1 CH1N CH3
tim1_baseinit.TIM_Period=100;
tim1_baseinit.TIM_Prescaler=71;
tim1_baseinit.TIM_CounterMode=TIM_CounterMode_Up;//向上计数
tim1_baseinit.TIM_ClockDivision=0;
tim1_baseinit.TIM_RepetitionCounter=0x00;
TIM_TimeBaseInit(TIM1,&tim1_baseinit);
tim1_OCinit.TIM_OCMode=TIM_OCMode_PWM1;
tim1_OCinit.TIM_OutputNState=TIM_OutputNState_Enable;
tim1_OCinit.TIM_OutputState=TIM_OutputState_Enable;
//tim1_OCinit.TIM_Pulse=10;
tim1_OCinit.TIM_OCPolarity=TIM_OCPolarity_High;
tim1_OCinit.TIM_OCNPolarity=TIM_OCNPolarity_Low;
tim1_OCinit.TIM_OCIdleState=TIM_OCIdleState_Set;
tim1_OCinit.TIM_OCNIdleState=TIM_OCIdleState_Reset;
TIM_OC1Init(TIM1,&tim1_OCinit);
TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable);
TIM_OC3Init(TIM1,&tim1_OCinit);
TIM_OC3PreloadConfig(TIM1,TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM1,ENABLE);
TIM_Cmd(TIM1,ENABLE);
TIM_CtrlPWMOutputs(TIM1, ENABLE);
}
void dj_open()
{
L1=0;
L2=1;
R1=1;
R2=0; //电机正转
TIM_SetCompare1(TIM1,80);
TIM_SetCompare3(TIM1,80);
}
void dj_close()
{
L1=0;
L2=0;
R1=0;
R2=0;
//电机不转
//TIM_SetCompare1(TIM1,20);
}
void dj_retreat()//后退
{
L1=1;
L2=0;
R1=0;
R2=1; //电机正转
TIM_SetCompare1(TIM1,30);//设置占空比为30%
TIM_SetCompare3(TIM3,50);
}
|
|