野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 62|回复: 1

[freertos] 任务卡死

[复制链接]
发表于 2024-11-27 11:00:56 | 显示全部楼层 |阅读模式

#include "stm32f10x.h"                  
#include "FreeRTOS.h"
#include "task.h"
#include "usart.h"
#include "stdio.h"
#include "lcd_driver.h"
#include "time.h"
#include "picture.h"
#include "GUI.h"
#include "iic_dht20.h"
#define configLCD_STACK_SIZE    ( ( unsigned short ) 4*1024 )
TaskHandle_t app_task1_handle = NULL;
TaskHandle_t app_task2_handle = NULL;
TaskHandle_t app_task3_handle = NULL;

void LED(void* pvParamenters);
void App_Task2(void* pvParamenters);
void App_Task3(void* pvParamenters);
void LED_Init();
int main(void)
{
    usart_init(1);
    SystemInit();   //System init.
    delay_init(72);
    LED_Init();
    lcd_Init();
    IIC_Init();
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
    BaseType_t lcd_return;
    BaseType_t led_return;  
    led_return = xTaskCreate((TaskFunction_t)LED,          //??????
                (const char *)"LED",          //????
                            (uint16_t)configMINIMAL_STACK_SIZE, //?????
                            (void*)NULL,                        //????????
                            (UBaseType_t)1,                     //?????
                            (TaskHandle_t*)&app_task1_handle);  //????

    lcd_return = xTaskCreate((TaskFunction_t)App_Task2,          //??????
                (const char *)"App_Task2",          //????
                            (uint16_t)(configMINIMAL_STACK_SIZE), //?????
                            (void*)NULL,                        //????????
                            (UBaseType_t)1,                     //?????
                            (TaskHandle_t*)&app_task2_handle);  //????
    xTaskCreate((TaskFunction_t)App_Task3,          //??????
                (const char *)"App_Task3",          //????
                            (uint16_t)configMINIMAL_STACK_SIZE, //?????
                            (void*)NULL,                        //????????
                            (UBaseType_t)0,                     //?????
                            (TaskHandle_t*)&app_task3_handle);  //????
    printf("lcd return %d led return %d\n",lcd_return,led_return);
                                                   
    vTaskStartScheduler();
}

void LED_Init()
{

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//??C????
   
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //????
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //??50Mhz
    GPIO_Init(GPIOC,&GPIO_InitStructure);             //???GPIOC
}


void LED(void *pvParameters)
{


  for(;;)
    {
        GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET);
        printf("����\n");
        vTaskDelay(500);
        printf("task1\n");
        GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_SET);
        printf("Ϩ��\n");
        vTaskDelay(500);

    }
}


void App_Task2(void *pvParameters)
{

    float temp =0;
    float hump =0;
    char lcd_buffer[15]="";
  for(;;)
    {
        lcd_clear_limit(0,40,127,70,RED);
        lcd_clear_limit(0,60,127,80,RED);
        read_SHT30(&temp,&hump);
        printf("�¶�: %.2f ʪ�ȣ�%.2f\n",temp,hump);
        sprintf(lcd_buffer,"temp:%.2f",temp);
        lcd_show_string(5,40,BLUE,RED,lcd_buffer);
        memset(lcd_buffer,0,15);
        sprintf(lcd_buffer,"hump:%.2f",hump);
        lcd_show_string(5,60,BLUE,RED,lcd_buffer);
        vTaskDelay(1000);
        printf("task2\n");
    }
}

void App_Task3(void *pvParameters)
{
   for(;;)
    {

    }
}




回复

使用道具 举报

 楼主| 发表于 2024-11-27 11:02:53 | 显示全部楼层
跑在stm32c8t6
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-12-5 02:55 , Processed in 0.112905 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表