#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点个赞吧。下一集,开启多任务系统。