PWM驅(qū)動(dòng)初始化代碼
使能定時(shí)器二時(shí)鐘
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
設(shè)置定時(shí)器時(shí)鐘源
TIM_InternalClockConfig(TIM2);
配置定時(shí)器二的時(shí)基單元
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInitStruct.TIM_Period=100-1; //ARR寄存器的值
TIM_TimeBaseInitStruct.TIM_Prescaler=720-1; //預(yù)分頻寄存器的值
TIM_TimeBaseInitStruct.TIM_RepetitionCounter=0;//高級寄存器才有
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStruct);
初始化定時(shí)器二的一二三通道引腳,使用復(fù)用推挽輸出模式
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_3;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);
配置定時(shí)器輸出比較寄存器
TIM_OCInitTypeDef TIM_OCInitStruct;
TIM_OCStructInit(&TIM_OCInitStruct); //對OC結(jié)構(gòu)體進(jìn)行一個(gè)默認(rèn)的初始化
TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM1;//設(shè)置為OC模式為PWM1模式
TIM_OCInitStruct.TIM_OCPolarity=TIM_OCPolarity_High;//設(shè)置為高電平有效,即不翻轉(zhuǎn)電平
TIM_OCInitStruct.TIM_OutputState=TIM_OutputState_Enable;//輸出使能
TIM_OCInitStruct.TIM_Pulse=10;
TIM_OC1Init(TIM2,&TIM_OCInitStruct);
TIM_OC2Init(TIM2,&TIM_OCInitStruct);
TIM_OC3Init(TIM2,&TIM_OCInitStruct);
使能定時(shí)器二文章來源:http://www.zghlxwxcb.cn/news/detail-817059.html
TIM_Cmd(TIM2,ENABLE);
TIM2 引腳重映射功能
//引腳重映射,由于PA15也可以作為TIM2通道0的輸出口,所以可以將引腳映射到15號引腳上
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
文章來源地址http://www.zghlxwxcb.cn/news/detail-817059.html
到了這里,關(guān)于STM32標(biāo)準(zhǔn)庫開發(fā)——PWM驅(qū)動(dòng)代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!