新手入门
- 积分
- 8
- 金钱
- 8
- 注册时间
- 2021-1-2
- 在线时间
- 7 小时
|
8金钱
使用的是stm32f407zg芯片,采用stm32cubemx添加了LWIP,FREERTOS,移植了LittleVGL,创建了1个闪灯的任务和lvgl任务。如果把下面StartLvglTask任务的lv_chart_test_start()去掉;
测试LWIP的UDP收发功能都正常。如果把lv_chart_test_start();加上,下载后液晶屏幕可以显示图像。
但是闪灯任务只进行了一次。后面是用串口打印的日志。发现StartLvglTask执行了几次就没执行了。
不知道是什么原因?附件有整个代码
[13:24:41.099]收←◆StartLed1Task1
StartLed1Task2
StartLvglTask1
StartLvglTask2
[13:24:41.218]收←◆StartLvglTask3
StartLvglTa
[13:24:41.240]收←◆sk4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTa
[13:24:41.297]收←◆sk1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
[13:24:41.396]收←◆
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
StartLvglTask4
StartLvglTask1
StartLvglTask2
StartLvglTask3
void StartLvglTask(void const * argument)
{
lv_chart_test_start();
for(;;)
{
printf("StartLvglTask1\r\n");
XPT2046_Scan(0);
printf("StartLvglTask2\r\n");
lv_task_handler();
printf("StartLvglTask3\r\n");
//osDelay(2);
vTaskDelay(pdMS_TO_TICKS(1));
printf("StartLvglTask4\r\n");
}
/* USER CODE END StartDefaultTask */
}
void MX_FREERTOS_Init(void) {
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* USER CODE BEGIN RTOS_MUTEX */
/* add mutexes, ... */
/* USER CODE END RTOS_MUTEX */
/* USER CODE BEGIN RTOS_SEMAPHORES */
/* add semaphores, ... */
/* USER CODE END RTOS_SEMAPHORES */
/* USER CODE BEGIN RTOS_TIMERS */
/* start timers, add new ones, ... */
/* USER CODE END RTOS_TIMERS */
/* USER CODE BEGIN RTOS_QUEUES */
/* add queues, ... */
/* USER CODE END RTOS_QUEUES */
/* Create the thread(s) */
/* definition and creation of defaultTask */
//osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128);
//defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
/* USER CODE BEGIN RTOS_THREADS */
/* add threads, ... */
osThreadDef(led1Task, StartLed1Task, osPriorityHigh, 0, 128);
led1TaskHandle = osThreadCreate(osThread(led1Task), NULL);
osThreadDef(lvglTask, StartLvglTask, osPriorityNormal, 0, 128);
lvglTaskHandle = osThreadCreate(osThread(lvglTask), NULL);
}
void StartLed1Task(void const * argument)
{
/* init code for LWIP */
/* USER CODE BEGIN StartDefaultTask */
/* Infinite loop */
for(;;)
{
printf("StartLed1Task1 \r\n");
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_RESET);
printf("StartLed1Task2\r\n");
osDelay(500/portTICK_RATE_MS);
printf("StartLed1Task3\r\n");
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_SET);
osDelay(500/portTICK_RATE_MS);
printf("StartLed1Task4\r\n");
}
/* USER CODE END StartDefaultTask */
}
|
|