有没有大佬帮忙看看,为什么输出3mhz的脉冲方波,脉冲个数不稳定?代码如下,用的apm32f103c8t6,定时器1的通道1输出,帮忙看看,谢谢!- void InitTime1Config(void)
- {
- GPIO_Config_T GPIO_ConfigStruct;
- TMR_BaseConfig_T TMR_TimeBaseStruct;
- TMR_OCConfig_T OCcongigStruct;
-
- RCM_EnableAPB2PeriphClock((RCM_APB2_PERIPH_T)(RCM_APB2_PERIPH_GPIOA | RCM_APB2_PERIPH_TMR1 ));
- GPIO_ConfigStruct.pin = GPIO_PIN_8;
- GPIO_ConfigStruct.mode = GPIO_MODE_AF_PP;
- GPIO_ConfigStruct.speed = GPIO_SPEED_50MHz;
- GPIO_Config(GPIOA, &GPIO_ConfigStruct);
-
- TMR_TimeBaseStruct.clockDivision = TMR_CLOCK_DIV_1;
- TMR_TimeBaseStruct.countMode = TMR_COUNTER_MODE_CENTERALIGNED2;
- TMR_TimeBaseStruct.division = 4;
- TMR_TimeBaseStruct.period = 2;
- TMR_ConfigTimeBase(TMR1, &TMR_TimeBaseStruct);
-
- OCcongigStruct.idleState = TMR_OC_IDLE_STATE_RESET;
- OCcongigStruct.mode = TMR_OC_MODE_PWM1;
- OCcongigStruct.nIdleState = TMR_OC_NIDLE_STATE_RESET;
- OCcongigStruct.nPolarity = TMR_OC_NPOLARITY_HIGH;
- OCcongigStruct.outputNState = TMR_OC_NSTATE_ENABLE;
- OCcongigStruct.outputState = TMR_OC_STATE_ENABLE;
- OCcongigStruct.polarity = TMR_OC_POLARITY_HIGH;//Êä³ö¼«ÐÔΪHIGH
- OCcongigStruct.pulse = 1;
- TMR_ConfigOC1(TMR1, &OCcongigStruct);
- TMR_ConfigOC1Preload(TMR1, TMR_OC_PRELOAD_ENABLE);
-
- TMR_EnablePWMOutputs(TMR1);
-
- TMR_EnableAUTOReload(TMR1);
- TMR_Enable(TMR1);
- }
复制代码 下面还有示波器的图片,黄色为3mhz晶振的效果,可见脉冲个数稳定在15k,蓝色是我的代码输出的wm波,可见脉冲个数不太稳定,有没有大佬指点一下,谢谢
|
-
-
|