int main(void)
{
char a_pwm_test[]={55,55,55,55,55,55,55,55,55,55};
PV_pwm_init();
Init_TM2();
while(PWMInterface_char(a_pwm_test,10)==0)
{
while(PWMInterface_char(a_pwm_test,10)!=0);
testnum++;
}
return 0;
}
void Init_TM2(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
// TIM3 Periph clock enable
// 定时器2外设时钟使能
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
// TIM2 Configuration
// 定时器2配置
TIM_DeInit(TIM2);
// 配置定时器2内部时钟
TIM_InternalClockConfig(TIM2);
TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
TIM_OCStructInit(&TIM_OCInitStructure);
// Time base configuration
// 时间基数配置
//设定1s一次
TIM_TimeBaseStructure.TIM_Period = 0x4480;
TIM_TimeBaseStructure.TIM_Prescaler = 0x0;
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE);
// TIM2 TRGO selection
// 定时器TRGO选择
TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update);
//优先级最低
//nvic
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPriority = 0x01;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
|