void TIM_Configuration(void)
{
/* 定义 TIM_TimeBase 初始化结构体 TIM_TimeBaseStructure */
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
/* 定义 TIM_OCInit 初始化结构体 TIM_OCInitStructure */
TIM_OCInitTypeDef TIM_OCInitStructure;
/*
* 计数重载值为999
* 分频值为(72000)
* 时钟分割0
* 向上计数模式
*/
TIM_TimeBaseStructure.TIM_Period = 999;
TIM_TimeBaseStructure.TIM_Prescaler = 72000-1;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM5 , &TIM_TimeBaseStructure);
/* 设置 OC1 通道
* 工作模式为 PWM 输出模式
* 使能比较匹配输出极性
* 时钟分割0
* 向上计数模式
* 得到的占空比分别为 50%,
*/
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //频率=72000K/((71999+1)*(999+1))=1Hz
) TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OCInitStructure.TIM_Pulse =500 ; //占空比500/(999+1)=50%
TIM_OC1Init(TIM5, &TIM_OCInitStructure);
/* 使能预装载寄存器 */
TIM_OC1PreloadConfig(TIM5 , TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM5, ENABLE);
/* 启动 TIM 计数 */
TIM_Cmd(TIM5 , ENABLE);
}
void GPIO_Configuration(void)
{
/* 定义 GPIO 初始化结构体 GPIO_InitStructure */
GPIO_InitTypeDef GPIO_InitStructure;
/* 设置 GPIOA 上的 TIM5 1通道对应引脚 PA.0,*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 |GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA, GPIO_Pin_1);
}
我用示波器查看没有脉冲输出,各位大神,哪出问题了?我用的是自制的板子,至于PA0,PA1
|