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例程的功能集成进来,可以进行多任务网络通讯。现在就卡在这里了。