打印

GD32的timer为什么没有中断

[复制链接]
2461|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 我又来下资料了 于 2016-7-28 10:37 编辑

配置完成,主函数都能打印printf函数,为什么中断没有反应,以前stm32也是这么配置的都可以。什么情况。
void TIM17_Config(void)   //调用此函数就可以启动定时中断
{
        TIM17_Configuration();
        TIM17_NVIC_Configuration();        
        TIMER_INTConfig(TIMER17,TIMER_INT_UPDATE,ENABLE);//打开tim中断
}

void TIM17_Configuration(void)
{
    TIMER_BaseInitPara  TIM_TimeBaseStructure;
               
                /* 设置TIM17CLK 为 48MHZ */
    RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_TIMER17,ENABLE);     //时钟配置
        
    TIMER_DeInit(TIMER17);
    TIM_TimeBaseStructure.TIMER_Period=(7200-1);                //(为此值时中断)自动重装载寄存器周期的值(0x0000 - 0xFFFF)
    TIM_TimeBaseStructure.TIMER_Prescaler= 99;                //计数周期预分频值(0x0000 - 0xFFFF)
    TIM_TimeBaseStructure.TIMER_ClockDivision=TIMER_CDIV_DIV1;// 对外部时钟进行采样的时钟分频
    TIM_TimeBaseStructure.TIMER_CounterMode=TIMER_COUNTER_UP; //计数模式,向上计数
    TIMER_BaseInit(TIMER6, &TIM_TimeBaseStructure);
        
    TIMER_Enable( TIMER17, ENABLE );                         //打开定时器
        
}

/// TIM17中断优先级配置
void TIM17_NVIC_Configuration(void)
{
    NVIC_InitPara NVIC_InitStructure;
                NVIC_InitStructure.NVIC_IRQ= TIMER17_IRQn; //中断通道
                NVIC_InitStructure.NVIC_IRQPreemptPriority=1;       //优先级
                NVIC_InitStructure.NVIC_IRQSubPriority=2;                                                //副优先级
    NVIC_InitStructure.NVIC_IRQEnable = ENABLE;                                                //使能中断
        
    NVIC_Init(&NVIC_InitStructure);
}



/***************************************************************
*函数名:TIM17_IRQhandler
*形参:void
*返回值:void
*函数功能:中断处理函数
****************************************************************/
void TIM17_IRQhandler(void)//中断处理程序
{
        if ( TIMER_GetIntBitState(TIMER17,TIMER_INT_UPDATE) == SET )
        {        
                TIMER_ClearIntBitState(TIMER17,TIMER_INT_UPDATE); //清除挂起,要不然一直循环
                printf("time17\r\n");
                Draw_Text_8_16_Str(0,16,NOBACKGROUND,GREEN,"TIME17  ");
                                 
        }                        
}

int main(void)
{
          SysTick_Configuration();
          USART1_Config();
          TIM17_Config();

          printf("这是一个串口中断接收回显实验\r\n");        
          printf("请在超级终端或者串口调试助手输入字符\r\n");        
while(1){printf("main");}

        return 0;
}

沙发
GD代理商| | 2016-7-28 10:56 | 只看该作者
代理商飘过!~
联系请点我头像哦!么么哒!

使用特权

评论回复
板凳
1020395811| | 2016-8-16 17:58 | 只看该作者
需要调用TIMER的函数,使能TIMER的某一个中断。ST的也是一样的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝