|
本帖最后由 心然 于 2020-5-24 16:06 编辑
线程任务用的是统一个函数,在创建时传入不同参数,一共创建8个线程,运行log上看出两个问题:
1. 代码中的红色字体log中只打印了一次,讲道理应该是8次
2. 另外每次切换线程时总是先执行任务[uart1]再执行其他的任务
使用cube生成的工程,freertos也是cube上面的,哪位能说下原因呢
代码:
- void test_Task(void *argument)
- {
- printf("task[%s] start\r\n", (char*)argument);
- while(1)
- {
- printf("[%s] running\r\n", (char*)argument);
- osDelay(2000);
- }
- }
- void main(void)
- {
- for(int i = 0; i < 8; i++)
- {
- UART_TaskHandle[i] = osThreadNew(test_Task, UART_Task_attributes[i].name, &UART_Task_attributes[i]);
- osDelay(200);
- }
- }
复制代码
LOG:
task[uart1] start
[uart1] running
[uart2] running
[uart1] running
[uart3] running
[uart1] running
[uart4] running
[uart1] running
[uart5] running
[uart1] running
[uart6] running
[uart1] running
[uart7] running
[uart1] running
[uart8] running
[uart1] running
|
|