大師好,比來在進修包養pttFreeRTOS的經過歷程中碰到一個題目:在最低優先級的義務中應用printf函數后,體系就會一向堅持在最低優先級的義務中,退步出來,把printf這行代碼屏障失落,義務又可以或許恢復切換,代碼如下,請列位指教一二,不堪感謝。
起首界說3個義務的參數 1個start 2個led(上面函數都是通俗創立的函數,如沒有需求可直接跳轉到最上面藍色標誌的地位 此中led1優先級為3 led2優先級為2)
/////////////////start_configure///////////////////
#d包養網評價efine start_Stack 150 //設置倉庫鉅細
#define start_Pro 1 //設置優先級
TaskHandle_t start_Hand包養金額le; //設置句柄
void start_task(void *pvParameters); //初始化函數
/////////////////led1_configure///////////////////
#defi包養網dcardne led1_Stack 215 //設置倉庫鉅細
#define led1_Pro 3 //設置優先級
TaskHandle_t led1_Handle; //設置句柄
void led1_task說真的,他也對巨大的差異感到困惑,但這就是他的感覺。(v包養pttoid *pvParameters); //初始化函數
/////////////////led2_configure///////////////////
#define led2_Stack 25 //設置倉庫鉅細
#define led2_Pro 2 //設置優先包養行情級
TaskHandle_t led2_Handle; //設置句柄
void led2_包養違法task(void *pvParameters); //初始化函數
創立main函數 包括一個start義務包養情婦
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//設置體系中止優先級分組4
delay_init(); 席世勳裝作沒看見,繼續說明今天的目的。 “今天肖拓除了來賠罪,主要是來表達自己的心意。肖拓不想和花姐解除婚約, //延時函數初始化
uart_init(1包養妹15包養故事200); //初始化串口
LED_Init();
// key_init();
//義務句柄
xTaskCreate( (Task包養感情Function_t) start_task,
(const包養平台 char * ) “start_task”,
(uint16_t ) start_Stack,
(void * 包養合約 ) 包養感情 NULL,
(UBaseType_t ) start_Pro,
(包養女人TaskHandle_t *) &start_Handle );
包養軟體
vTaskStartScheduler(); //開啟義務調劑
}
start義務中創立兩個led義務 并創立一個事務標志組
void start_task(void *pvParameters)
{
taskENTER_CRITICAL();
led2_EventHandle=xEventGroupCreate();
if(led2_EventHandle==NUL包養站長L)
printf(“the led2_EventHandle created failedrn”);
xTaskCreate((TaskFunction_t) led1_task,
女大生包養俱樂部 (const char * ) “led1_task”,
(uint16_t ) led1_Stack,
(vo包養一個月id * ) NULL,
(UBaseType_t ) led1_Pro,
(TaskHandle_t *) &led1_Handle );
xTaskCreate((TaskFunct包養合約ion_t) led2_task,
(const char * ) “led2_task”,
包養軟體 (uint16_t ) led2_Stack,
(void * ) NULL,
包養行情 (UBaseType_t ) led2_Pro,
(TaskHandle_t *) &led2_Handle );
得很美嗎?
vTaskDelete( start_Handle );
taskEXIT_CRITICAL();
}
上面創立的是兩個led義務
v長期包養oid led1_task(void *pvParameters)
{
u32 times=0;
while(1)
{
LED1=~LED1;
vTaskDelay(500);
times++;
包養平台if(times%6==0)
長期包養 xEventGroupSetBits(led2_EventHandle,0x01);
包養網比較 else if(times%8==0)
xEventGroupSetBits(led2_EventHandle,0x02);
}
}
void led2_task(void *pvParameters)
{
while(1)
{
Current_led2_Event=xEventGroupWaitBits(( EventGroupHandle_t ) led2_EventHandle,包養網站
包養網推薦 (EventBits_t ) 0x03,
包養網推薦 藍玉華一臉受教的神情點了點頭。 (BaseType_t ) pdTRUE,
(BaseType_t包養網VIP ) pdTRUE,
包養價格ptt (TickType_t ) por包養網dcardtMAX_DELAY);
//printf(“the data is %#drn”,Current_led2_Event);////////////////////////////////////////////////////////////////////////////////////////////////要害的這一行代碼
LED0=~LED0; 生憐惜,不知不覺做了男人該做的事,一犯錯,就和她成為了真正的夫妻。
portYIELD();
}
• UCOSII試驗1,義務調劑的試驗中為什么把最低優先級的給了開端義務?2065