新手入门
- 积分
- 13
- 金钱
- 13
- 注册时间
- 2016-3-21
- 在线时间
- 0 小时
|
4金钱
#include "stm32f10x.h"
#include "LED.h"
#include "pwm.h"
int main ()
{
TIM3_PWM_Init(19,72); // 不应该是 50k?
LED_Init( );
TIM_SetCompare2(TIM3,10); // 占空比50%
while(1);
}
我是用的 TIM3 _CH2重映射到 PB5 ,但是用逻辑分析仪分析的是720K左右 ,求各位大神指点。
void TIM3_PWM_Init(u16 arr,u16 psc)
{ {
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
TIM_OCInitTypeDef TIM_OCIntStructure;
RCC_APB1PeriphClockCmd (RCC_APB1Periph_TIM3,ENABLE );
RCC_APB2PeriphClockCmd (RCC_APB2Periph_AFIO,ENABLE) ;
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE ); // 部分重映射
TIM_TimeBaseInitStructure.TIM_Period=arr; // 计数值-1
TIM_TimeBaseInitStructure.TIM_Prescaler=psc; // 预分频-1
TIM_TimeBaseInitStructure.TIM_ClockDivision=0; // 时钟不分割
TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up ;// 向上计数
TIM_TimeBaseInit(TIM3 ,&TIM_TimeBaseInitStructure) ;
TIM_OCIntStructure.TIM_OCMode=TIM_OCMode_PWM2; // PWM模式2
TIM_OCIntStructure.TIM_OutputState=TIM_OutputState_Enable; // 比较输出使能
TIM_OCIntStructure.TIM_OCPolarity=TIM_OCPolarity_High; // 输出极性高
TIM_OC2Init(TIM3,&TIM_OCIntStructure); // 初始化 TIM3 OC2 外设
TIM_OC2PreloadConfig(TIM3 ,TIM_OCPreload_Enable); // 使能预装载
TIM_Cmd(TIM3 ,ENABLE ); // TIM3 使能
}
}
|
-
|