你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

ST NUCLE FreeRTos的第一个任务

[复制链接]
STMCU小助手 发布时间:2023-1-10 17:45

% D& X2 j/ D4 f+ B; C$ J
  1. #include <Arduino.h>7 m9 |" y/ |5 h' S8 ?" ]" ~: l! m9 P/ |
  2. #include <STM32FreeRTOS.h> //引和freertos库1 \7 e+ i2 y; A5 Z2 r. S. V1 e

  3. " s% e# }; N7 {& Q0 D3 I
  4. #ifndef LED_BUILTIN
    / W2 d  L/ ]" x
  5.   #define LED_BUILTIN PC59 m) n" ]- ~: y5 M: w8 E+ L
  6. #endif
    + V/ m2 B9 v* b! }2 g

  7. ; s1 g: a9 \. G( B  O: o$ b8 c& _
  8. /*********************************************************************************# `0 `6 ~! R0 y' R" l8 x
  9.   * @ 函数名  : vTaskLed1
    9 V3 T' m& r9 m
  10.   * @ 功能说明: LED1 任务,实现一个周期性的闪烁
    ) u& |* K, n0 e6 T$ a5 `
  11.   * @ 参数    : pvParameters,当任务创建的时候传进来,可以没有  
    / H1 X# ^, N% _+ X  O
  12.   * @ 返回值  : 无, F; N/ m7 h1 L- Y* m! L
  13.   ********************************************************************************/$ E5 s) q; x* F$ X- Z* a' z* r2 U# V
  14. void vTaskLed1(void *pvParameters)
    0 }; B# T& p6 c$ ^
  15. {
    ) }( e3 @4 n) ]) Z
  16.     /* 任务都是一个无限,不能返回 */
    * a! m5 U. R8 {& ^
  17.     while(1)
    3 {+ A5 [3 a- i/ [7 R4 s
  18.     {2 K9 B6 F% p6 Z7 J9 B; y: c
  19.         digitalWrite(LED_BUILTIN, HIGH);;
    6 x( f& t& B. T2 Q. V2 b
  20.     /* 阻塞延时,单位ms */        
    9 j- I9 J7 P& d' T+ ~! ^" X7 y
  21.         vTaskDelay( 500 );
    0 P( [6 ?5 K2 Q8 v8 C$ Q9 k
  22.         digitalWrite(LED_BUILTIN, LOW);;   
    & O. b1 D1 r' d9 c0 z) c7 y3 w
  23.         vTaskDelay( 500 );* z2 z8 l7 U# x. d2 W" C
  24.         long tick = xTaskGetTickCount();0 {- v6 i  _2 F9 E; \% n% N
  25.         Serial.print("running time = ");0 f4 z; b" i* `5 |* O- J& r
  26.         Serial.println(tick);
    8 {. z2 }3 _0 T
  27.     }    ! [7 |. A6 u9 C' ?
  28. }
    $ |, V8 H& ?/ K* {" T5 g
  29. void setup()9 W0 O9 f! {; b0 k0 ^4 B
  30. {
    / R0 L, v/ o4 [8 P. R! \, j
  31.   Serial.begin(115200);
    # Q  G% c! ]+ F5 `0 n4 I0 P
  32.   // initialize LED digital pin as an output.% B$ N( _7 D: ]  ], @4 o
  33.   pinMode(LED_BUILTIN, OUTPUT);
    7 k, z7 N% q( Q  M  t1 L6 Z- m
  34.   Serial.println("start U575");; t3 s8 y. w. f* O5 L* n( T/ H
  35.   TaskHandle_t myTask1; //创建任务句柄
    * o1 {  C# K' O5 _7 |, c/ z7 X( u* Z* Z8 m
  36.   xTaskCreate(vTaskLed1,  //创建任务
    , P4 e) o4 j' f7 U+ |7 t
  37.               "Led task",
    3 O  o. a' u$ N  H+ X; O. x
  38.               1024,
    , n8 X. s# a+ p1 i! n- U; u
  39.               NULL,) c! w4 h4 ?! y' C# F. i
  40.               6,
    $ H2 c$ z6 ~  L$ x: d8 a# I5 A" k
  41.               &myTask1);9 G- Z4 \2 m. j: a5 f+ r
  42.   // 开启任务' M; o2 w1 g; O! d
  43.   vTaskStartScheduler();
    % c0 A! l  p3 S, P
  44. }6 ]2 ^3 ?+ B- a5 v; R

  45. 6 s2 o! w2 _7 l
  46. void loop()6 i$ m% v4 J3 n) l6 `5 Z
  47. {7 ^/ @' y) G8 I+ m" r% R0 l
  48.   
    ! B4 Y9 N/ ^3 Y* l* I' X1 @1 s2 y
  49. }
复制代码

; @0 {/ j( d7 v% `8 G1 V% J) s
, G' Y7 k2 n2 _' s$ w# _1 z. L如上,开启FreeRTos。
' B) f3 f% b; f  r8 a  u
+ _% s4 X* p/ j2 D

% Y% Y# J2 G: b( E7 s6 ~6 v效果:
+ W4 D  h+ P0 G: A$ Y5 e  V+ ]7 p
- A( m  t4 y' Z

+ P5 m& {4 |5 K6 d2 p 101014u5zvz7o0k292yq99.png.thumb.png ; i- J! @  V6 v% [. A. Q' v
! H: x+ d. f2 z" D) q( W
; L( F# q( J& v3 c" Q* L
第一个任务就成功了,给arduino点个赞吧。下一集,开启多任务系统。+ U9 V6 @1 Z. N( v6 m( S* O5 _1 N

  _3 s/ @4 l0 n9 w
& i. R* F3 j3 j  C
) `  H3 {( H4 I2 s
赞 收藏 评论0 发布时间:2023-1-10 17:45

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版