1583|4

6968

帖子

11

TA的资源

版主

楼主
 

[ ST NUCLEO-U575ZI-Q 测评] FreeRTos的第一个任务 [复制链接]

#include <Arduino.h>
#include <STM32FreeRTOS.h> //引和freertos库

#ifndef LED_BUILTIN
  #define LED_BUILTIN PC5
#endif

/*********************************************************************************
  * @ 函数名  : vTaskLed1
  * @ 功能说明: LED1 任务,实现一个周期性的闪烁
  * @ 参数    : pvParameters,当任务创建的时候传进来,可以没有  
  * @ 返回值  : 无
  ********************************************************************************/
void vTaskLed1(void *pvParameters)
{
    /* 任务都是一个无限,不能返回 */
    while(1)
    {
        digitalWrite(LED_BUILTIN, HIGH);;
    /* 阻塞延时,单位ms */        
        vTaskDelay( 500 );
        digitalWrite(LED_BUILTIN, LOW);;    
        vTaskDelay( 500 );
        long tick = xTaskGetTickCount();
        Serial.print("running time = ");
        Serial.println(tick);
    }    
}
void setup()
{
  Serial.begin(115200);
  // initialize LED digital pin as an output.
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.println("start U575");
  TaskHandle_t myTask1; //创建任务句柄
  xTaskCreate(vTaskLed1,  //创建任务
              "Led task",
              1024,
              NULL,
              6,
              &myTask1);
  // 开启任务
  vTaskStartScheduler();
}

void loop()
{
  
}

如上,开启FreeRTos。

效果:

 第一个任务就成功了,给arduino点个赞吧。下一集,开启多任务系统。

此帖出自RF/无线论坛

最新回复

测评汇总:免费申请|ST NUCLEO-U575ZI-Q https://bbs.eeworld.com.cn/thread-1228653-1-1.html   详情 回复 发表于 2023-1-12 09:26
点赞(1) 关注
 

回复
举报

6105

帖子

4

TA的资源

版主

沙发
 

你已经开始了多任务

此帖出自RF/无线论坛

点评

对,加上setup里面的任务,算是两个任务了吧,我还是学习中。  详情 回复 发表于 2022-12-13 15:19
 
 

回复

6968

帖子

11

TA的资源

版主

板凳
 
damiaa 发表于 2022-12-13 14:40 你已经开始了多任务

对,加上setup里面的任务,算是两个任务了吧,我还是学习中。

此帖出自RF/无线论坛
 
 
 

回复

6105

帖子

4

TA的资源

版主

4
 
本帖最后由 damiaa 于 2022-12-13 20:11 编辑

esp32 idf框架就是默认了3个任务。

Main Task (main)

CPU0

1

Task that simply calls app_main. This task will self delete when app_main returns

Idle Tasks (IDLEx)

CPU0 and CPU1

0

Idle tasks created for (and pinned to) each CPU

IPC Tasks (ipcx)

CPU0 and CPU1

24

IPC tasks created for (and pinned to ) each CPU. IPC tasks are used to implement the IPC feature. See Inter-Processor Call for more details.

esp32 的arduino 中用freertos在加载app_main的时候就创建了一个任务。

setup()和loop()函数包含在这个任务里面。

xTaskCreatePinnedToCore(loopTask, "loopTask", 8192, NULL, 1, NULL, ARDUINO_RUNNING_CORE);

stm32 的arduino 中用freertos不知道什么情况。 可能不一样  stm32的main.cpp 里面可能 没创建任务,但也包含了setup()和loop()函数。

如果这样 楼主的还是一个任务

此帖出自RF/无线论坛
 
 
 

回复

1万

帖子

2853

TA的资源

管理员

5
 

测评汇总:免费申请|ST NUCLEO-U575ZI-Q https://bbs.eeworld.com.cn/thread-1228653-1-1.html

此帖出自RF/无线论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表