CHF205无法进入中断问题

可以外部中断(霍尔电平检测),但是定时器的中断进不去,编码器的溢出中断也进不去,晶振正常,有大佬能看看吗

#include "debug.h"

#include "main.h"


/*********************************************************************

作用:定时产生中断,来判断此时斯克,电流,速度,距离是否达到预计值,

               发送PID不断的修正的占空比数据给PWM控制函数。

 */

 

 static  int i = 0,m;


void TIM2_TI_Init( void )

 {


    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure={0};

    NVIC_InitTypeDef NVIC_InitStructure;


    RCC_APB1PeriphClockCmd( RCC_APB1Periph_TIM2, ENABLE ); //使能定时器时钟


    TIM_TimeBaseInitStructure.TIM_Period = 1000-1;     //重装载值,计数  1ms

    TIM_TimeBaseInitStructure.TIM_Prescaler = 144-1;     //预分频     1us

    TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;//采样

    TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;//计数方式,向上

    TIM_TimeBaseInit( TIM2, &TIM_TimeBaseInitStructure);  //初始化时钟

TIM_SetCounter(TIM2, 0);        //设置TIM的计数器的值

    //产生一次更新事件,使时基单元的配置生效。之后清除更新事件标志

     TIM_GenerateEvent (TIM2, TIM_EventSource_Update);

     TIM_ClearFlag (TIM2, TIM_FLAG_Update);

TIM_ITConfig( TIM2, TIM_IT_Update ,ENABLE );

    NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn;    //中断通道

    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01;   //抢占优先级

    NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x01;     //比较优先级

    NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;       //使能

    NVIC_Init(&NVIC_InitStructure);

TIM_Cmd( TIM2, ENABLE );


 }

 

 

void  TIM2_IRQHandler(void )  //1ms中断一次

{

/* 当然是处理计算用 */

 

// if(i%5==0)  //作用:调整PID计算的周期,减少进入计算频率

        motor_pid_control();    //三环PID计算


      m= i++;   

TIM_ClearITPendingBit(TIM2, TIM_IT_Update);

//#if PID_ASSISTANT_EN

//  uint32_t temp = GET_BASIC_TIM_PERIOD();     // 计算周期,单位ms 

//  set_computer_value(SEND_PERIOD_CMD, CURVES_CH1, &temp, 1);     // 给通道 1 发送目标值

//#endif

}


您好,附件是参考例程,测试TIM2进中断是没有问题的,你可以参考一下。后续若有问题,可通过邮箱(lzs@wch.cn)和我沟通。

icon_rar.gifCH32F205 TIM2中断.zip



只有登录才能回复,可以选择微信账号登录