|
请教坛友,FREERTOS一创键任务IO口就虚空是怎么回事?灯也不亮,把任务屏蔽掉灯就亮了. 难道任务能影响IO?
void LedTask1(void)
{
while(1)
{
GPIO_ResetBits(GPIOC, GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12);
vTaskDelay(1000); // 睡眠1000ms
}
}
/**********************************************/
/* */
/* LED周期性闪烁任务2 */
/* */
/**********************************************/
void LedTask2(void)
{
while(1)
{
GPIO_ResetBits(GPIOC, GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12);
vTaskDelay(1000); // 睡眠1000ms
}
}
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); // 一定要将优先级分组设置分组方式4!!!
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); // 不使用JTAG调试,对应的IO口作为普通IO口使用
LED_Init();
/* 创建LED1任务 */
xTaskCreate((TaskFunction_t)LedTask1, // 任务函数指针
"LED_TASK1", // 任务名称
40, // 堆栈深度(字)
NULL, // 任务参数为空
1, // 任务优先级
NULL ); // 任务句柄为空
/* 创建LED2任务 */
xTaskCreate((TaskFunction_t)LedTask2, "LED_TASK2", 40, NULL, 2, NULL );
/* 启动任务调度器(操作系统开始运行) */
vTaskStartScheduler();
/* 不应该运行到这里 */
while(1)
{
GPIO_ResetBits(GPIOC, GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12);
}
}
|
|