CH32V307VCT6 FreeRTOS例程问题

CH32V307VCT6核心板,用官方的FreeRTOS例程,在task2_task()函数里面增加了一段代码,系统就不能正常运行了,代码如下:

void task2_task(void *pvParameters)

{

//    新增的部分(增加了这部分代码后,系统就不能正常运行了,task1和task2都不能运行了)

    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure={0};


    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);


    TIM_TimeBaseStructure.TIM_Period = 200 - 1;

    TIM_TimeBaseStructure.TIM_Prescaler = 7200 - 1;

    TIM_TimeBaseStructure.TIM_ClockDivision = 0;

    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

    TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

    TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);


    TIM_Cmd(TIM2, ENABLE);

    TIM_ClearITPendingBit(TIM2, TIM_IT_Update);

    NVIC_SetPriority(TIM2_IRQn, 0x80);

    NVIC_EnableIRQ(TIM2_IRQn);

//  新增结束


    while(1)

    {

        printf("task2 entry\r\n");

        GPIO_ResetBits(GPIOB, GPIO_Pin_4);

        vTaskDelay(500);

        GPIO_SetBits(GPIOB, GPIO_Pin_4);

        vTaskDelay(500);

    }

}

请问是什么原因?

本来是想在FreeRTOS例程的基础上,把TCPServer例程的功能集成进来,可以进行多任务网络通讯。现在就卡在这里了。

TIM2的中断函数写好没,是不是跳入中断了,没清中断一直卡在中断那里。


您好,感觉应该是你的程序问题,附件为参考例程,您可以参考一下

icon_rar.gifFreeRTOS.zip




谢谢,确实是中断函数没写的问题


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