OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3595|回复: 1

在学习FreeRTOS时 下载程序到32后必须要在keil中dubug才会运行

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2018-10-19
在线时间
6 小时
发表于 2019-3-1 17:04:43 | 显示全部楼层 |阅读模式
1金钱
如题 代码我用的是提供的代码就主函数稍微改了一点点, 但是在做的这个任务创建的试验中 下载到32里 串口接收不到数据    当debug后 串口马上显示数据了。。。这是为什么?

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "FreeRTOS.h"
#include "task.h"
/************************************************
ALIENTEK 阿波罗STM32F429开发板 FreeRTOS实验2-1
FreeRTOS移植实验-HAL库版本
技术支持:www.openedv.com
淘宝店铺:http://eboard.taobao.com
关注微信公众平台微信号:"正点原子",免费获取STM32资料。
广州市星翼电子科技有限公司  
作者:正点原子 @ALIENTEK
************************************************/

#define START_STK_SIZE       120
#define START_TASK_PRIO      1//
TaskHandle_t StartTask_Handler;
#define TASK1_TASK_PRIO                2
//任务堆栈大小       
#define TASK1_STK_SIZE                 120  
//任务句柄
TaskHandle_t TASK1Task_Handler;
//任务函数
//任务优先级
#define TASK2_TASK_PRIO                3
//任务堆栈大小       
#define TASK2_STK_SIZE                 120  
TaskHandle_t TASK2Task_Handler;
void TASK1_task(void *pvParameters);
void TASK2_task(void *pvParameters);
TaskHandle_t StartTask_Handler;
void start_task( void * pvParameters );
TaskHandle_t StartTask_Handler;//任务句柄

int main(void)
{
    HAL_Init();                     //初始化HAL库   
    Stm32_Clock_Init(360,25,2,8);   //设置时钟,180Mhz
        delay_init(180);                //初始化延时函数
    LED_Init();                     //初始化LED
    uart_init(115200);             //初始化串口
    //创建开始任务
      xTaskCreate(                  (TaskFunction_t) start_task,
                                                                                                                        ( char * ) "start_task",
                                                                                                                        ( uint16_t) START_STK_SIZE ,
                                                                                                                        (void *  )   NULL,
                                                                                                                        (UBaseType_t) START_TASK_PRIO,
                                                                                                                        (TaskHandle_t *)  &StartTask_Handler );
               
    vTaskStartScheduler();          //开启任务调度
}


void start_task( void * pvParameters )//任务函数
{//创建Task1
        // xTaskCreate(                  (TaskFunction_t) start_task,
        //                                                                                                                ( char * ) "start_task",
        //                                                                                                                (const uint16_t) START_STK_SIZE ,
        //                                                                                                                (void * const )   NULL,
        //                                                                                                                (UBaseType_t) START_TASK_PRIO,
        //                                                                                                                (TaskHandle_t *)  &StartTask_Handler );


  xTaskCreate((TaskFunction_t )TASK1_task,            
                (const char*    )"TASK1_task",          
                (uint16_t       )TASK1_STK_SIZE,
                (void*          )NULL,                               
                (UBaseType_t    )TASK1_TASK_PRIO,       
                (TaskHandle_t*  )&TASK1Task_Handler);   
    //创建LED1任务
    xTaskCreate((TaskFunction_t )TASK2_task,     
                (const char*    )"TASK2_task",   
                (uint16_t       )TASK2_STK_SIZE,
                (void*          )NULL,
                (UBaseType_t    )TASK2_TASK_PRIO,
                (TaskHandle_t*  )&TASK2Task_Handler);
                                                               
                                                                vTaskDelete(StartTask_Handler);
}
void TASK1_task( void * pvParameters )
{
        while(1)
        {
        printf("task1");
                LED0=~LED0;
                vTaskDelay(500);
        }
}
void TASK2_task( void * pvParameters )
{
        while(1)
        {
                printf("task2");
                LED1=0;
                vTaskDelay(200);
                LED1=1;
                vTaskDelay(800);
        }
}


N`U7TAZPIHANG@D%_PZ[TE0.png
{O02IU~ILWN(3K_%F@BV.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2019-3-1 18:32:01 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 22:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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