|
/***********************TIM4初始化PWM相關(guān)GPIO*************************/
static void GENERAL_TIM_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //初始化結(jié)構(gòu)體
RCC_APB2PeriphClockCmd(GENERAL_TIM4_CH1_GPIO_CLK, ENABLE);//使能GPIOB端口時(shí)鐘
GPIO_InitStructure.GPIO_Pin = GENERAL_TIM4_CH1_PIN; //PB6
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復(fù)用推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //推挽速度50MH
GPIO_Init(GENERAL_TIM4_CH1_PORT, &GPIO_InitStructure); //初始化相關(guān)GPIO
}
/**************************TIM2PWM配置********************************/
static void GENERAL_TIM_Mode_Config(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //定時(shí)器基本配置結(jié)構(gòu)體
TIM_OCInitTypeDef TIM_OCInitStructure; //通道配置結(jié)構(gòu)體
GENERAL_TIM4_APBxClock_FUN(GENERAL_TIM4_CLK,ENABLE); //TIM2 掛載在APB1 32M
// 自動(dòng)重裝載寄存器的值,累計(jì)TIM_Period+1個(gè)頻率后產(chǎn)生一個(gè)更新或者中斷
TIM_TimeBaseStructure.TIM_Period=GENERAL_TIM4_Period; //配置計(jì)數(shù)720次
// 驅(qū)動(dòng)CNT計(jì)數(shù)器的時(shí)鐘 = Fck_int/(psc+1)
TIM_TimeBaseStructure.TIM_Prescaler= GENERAL_TIM4_Prescaler; //CNT時(shí)鐘不分頻
// 時(shí)鐘分頻因子 ,配置死區(qū)時(shí)間時(shí)需要用到
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; //時(shí)鐘不分頻
// 計(jì)數(shù)器計(jì)數(shù)模式,設(shè)置為向上計(jì)數(shù)
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上計(jì)數(shù)
// 重復(fù)計(jì)數(shù)器的值,沒用到不用管
TIM_TimeBaseStructure.TIM_RepetitionCounter=0;
// 初始化定時(shí)器
TIM_TimeBaseInit(GENERAL_TIM4, &TIM_TimeBaseStructure); //初始化定時(shí)器配置
/*--------------------輸出比較結(jié)構(gòu)體初始化-------------------*/
// 配置為PWM模式1
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //PWM模式1
// 輸出使能
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //使能輸出
// 輸出通道電平極性配置
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //高電平使能
// 輸出比較通道 1
TIM_OCInitStructure.TIM_Pulse = 0; //初始值為0
TIM_OC1Init(GENERAL_TIM4, &TIM_OCInitStructure); //初始化配置
TIM_OC1PreloadConfig(GENERAL_TIM4, TIM_OCPreload_Enable); //使能加載寄存器
TIM_Cmd(GENERAL_TIM4, ENABLE);
}
/*************************TIM4初始化函數(shù)****************************************/
void TIM4_PWM_Init(void)
{
GENERAL_TIM_GPIO_Config();
GENERAL_TIM_Mode_Config();
}
|
|