
1 软件程序设计/ V1 H9 }! U+ e 为了使用RTX以多任务的方式驱动LED灯的闪烁,设置5个任务OS_TID t_phaseA、OS_TID t_phaseB、 OS_TID t_phaseC、OS_TID t_phaseD和OS_TID t_lcd。其中前4个任务的作用是点亮某个LED灯,延迟 一段时间,然后通过设置标志触发另一个任务执行,再延迟一段时间之后,熄灭LED灯,等待下一次事9 T2 W( X' c8 C5 X2 P8 Q3 H 件标志的到来;通过这四个任务的循环触发可以实现四个LED灯循环闪烁,其延迟时间由ADC转换值决定。: o0 B4 v2 ]' c( y8 b) `0 Y OS_TID t_lcd用于将ADC转换值显示在LCD上,按固定时间间隔不断更新。& z' Y/ j' A$ W" ^. w( B 除了以上5个任务之外,还有init任务和idle任务,init任务用于创建以上5个任务,该任务在完成之后 自行删除;idle任务无需创建,永远存在,当系统无其他任务时执行该任务。& s7 E1 w' ^- m 2 运行过程2 n& r- R# I. ^ (1) 使用MDK通过ULINK 2仿真器连接开发板,或使用两根USB电缆分别将CN1和CN5 与PC机USB端口相连% C$ v9 D" ^$ K( H8 b (使用板上自带的UlinkMe); (2) 打开实验例程目录RTX_Blinky下的RTX_Blinky.Uv2工程,将其编译链接后烧写到开发板中; H& N( u8 p2 u (3) 如果程序运行正常,LED1、LED2、LED3、LED4将轮流闪烁,其闪烁顺序与一个四相八拍步进电机 的相序一致;LCD上将会显示AD转换的值"AD value 0x****";/ _4 Z @3 O: K* g9 V2 a& p (4) 调整电位器RV1,四个LED灯的闪烁速度将发生变化,LCD上显示的AD转换值也将随之发生变化。5 z, c! @7 C/ Y4 M# |/ _: a' \ |
RTX_Blinky.rar
下载579.29 KB, 下载次数: 432
RE:STM32 RTX多任务方式驱动LED灯 例程
RE:STM32 RTX多任务方式驱动LED灯 例程
RE:STM32 RTX多任务方式驱动LED灯 例程
assembling STM32F10x.s...
creating preprocessor file for Blinky.c...
compiling Blinky.c.... ?" A) E2 u# N
Blinky.c(61): error: #130: expected a "{"$ s+ x! c4 \! _2 y: v2 I5 k
Blinky.c: void phaseA (void) __task {
Blinky.c: ^
Blinky.c(73): error: #130: expected a "{"
Blinky.c: void phaseB (void) __task {+ r9 U H. @# N& i
Blinky.c: ^
Blinky.c(85): error: #130: expected a "{"8 ?6 N+ }2 D& i7 P
Blinky.c: void phaseC (void) __task {
Blinky.c: ^7 _5 m% g x$ O# S7 W
Blinky.c(97): error: #130: expected a "{"+ W4 z/ E8 |9 C ?3 b
Blinky.c: void phaseD (void) __task {8 Z2 j1 `9 S6 x4 t) X
Blinky.c: ^
Blinky.c(111): error: #130: expected a "{"
Blinky.c: void lcd (void) __task {
Blinky.c: ^
Blinky.c(141): error: #130: expected a "{"
Blinky.c: void init (void) __task {
Blinky.c: ^
Blinky.c: Blinky.c: 0 warnings, 6 errors8 O) M2 L% [, e3 R8 e, t. P8 N
creating preprocessor file for LCD_4bit.c...
compiling LCD_4bit.c...
creating preprocessor file for Setup.c.../ W* ` p+ y. h6 E
compiling Setup.c...
Setup.c(29): error: #20: identifier "RCC_AHBPeriph_DMA" is undefined- C% ~# U% P+ g* Q* }/ V
Setup.c: RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA, ENABLE);
Setup.c: ^1 e6 H/ H8 C5 ?
Setup.c(40): error: #20: identifier "DMA_Channel1" is undefined
Setup.c: DMA_DeInit(DMA_Channel1);- A. A4 V' l0 j, o& j: M! v
Setup.c: ^6 E# W4 H0 X7 n
Setup.c: Setup.c: 0 warnings, 2 errors3 ^# O& ^' L/ a5 ^
creating preprocessor file for STM32_Init.c...
compiling STM32_Init.c...) L3 h( z9 M' b" ^
creating preprocessor file for RTX_Config.c...
compiling RTX_Config.c...
RTX_Config.c(156): error: #130: expected a "{"' r6 ~5 j: }4 g) @3 L
RTX_Config.c: void os_idle_demon (void) __task {( Y7 h+ \) h: A& H) ]) V( u
RTX_Config.c: ^
RTX_Config.c: RTX_Config.c: 0 warnings, 1 error
creating preprocessor file for Serial.c...
compiling Serial.c...
creating preprocessor file for Retarget.c...) S9 r7 I- K- d; R
compiling Retarget.c...
Target not created
回复:STM32 RTX多任务方式驱动LED灯 例程
1 软件程序设计
为了使用RTX以多任务的方式驱动LED灯的闪烁,设置5个任务OS_TID t_phaseA、OS_TID t_phaseB、* \8 F6 q! C4 x* [
OS_TID t_phaseC、OS_TID t_phaseD和OS_TID t_lcd。其中前4个任务的作用是点亮某个LED灯,延迟
一段时间,然后通过设置标志触发另一个任务执行,再延迟一段时间之后,熄灭LED灯,等待下一次事
件标志的到来;通过这四个任务的循环触发可以实现四个LED灯循环闪烁,其延迟时间由ADC转换值决定。
OS_TID t_lcd用于将ADC转换值显示在LCD上,按固定时间间隔不断更新。; e3 C6 X; _0 y
除了以上5个任务之外,还有init任务和idle任务,init任务用于创建以上5个任务,该任务在完成之后
自行删除;idle任务无需创建,永远存在,当系统无其他任务时执行该任务。; k' H' C% u( P7 J
. h$ E! P, Z; l$ f7 ?) a
2 运行过程
(1) 使用MDK通过ULINK 2仿真器连接开发板,或使用两根USB电缆分别将CN1和CN5 与PC机USB端口相连
(使用板上自带的UlinkMe); $ m; J, ]: q W M9 r7 H
(2) 打开实验例程目录RTX_Blinky下的RTX_Blinky.Uv2工程,将其编译链接后烧写到开发板中;! P# z2 D5 g* o* v0 u" S; P$ a
(3) 如果程序运行正常,LED1、LED2、LED3、LED4将轮流闪烁,其闪烁顺序与一个四相八拍步进电机
的相序一致;LCD上将会显示AD转换的值"AD value 0x****";
(4) 调整电位器RV1,四个LED灯的闪烁速度将发生变化,LCD上显示的AD转换值也将随之发生变化。* `1 ~( P3 i; F9 M9 i
, Q! a5 H: `4 q
RE:STM32 RTX多任务方式驱动LED灯 例程
RE:STM32 RTX多任务方式驱动LED灯 例程
RE:STM32 RTX多任务方式驱动LED灯 例程
回复:STM32 RTX多任务方式驱动LED灯 例程
回复:STM32 RTX多任务方式驱动LED灯 例程
回复:STM32 RTX多任务方式驱动LED灯 例程
回复:STM32 RTX多任务方式驱动LED灯 例程
RE:STM32 RTX多任务方式驱动LED灯 例程
.\Obj\Blinky.axf: Error: L6218E: Undefined symbol rt_evt_wait (referred from blinky.o).
.\Obj\Blinky.axf: Error: L6218E: Undefined symbol rt_sys_init (referred from blinky.o).% w0 R# b$ w$ R$ K8 R
.\Obj\Blinky.axf: Error: L6218E: Undefined symbol rt_tsk_create (referred from blinky.o).9 p6 S8 @( U* P6 T
.\Obj\Blinky.axf: Error: L6218E: Undefined symbol rt_tsk_delete (referred from blinky.o).
.\Obj\Blinky.axf: Not enough information to list image symbols.
.\Obj\Blinky.axf: Finished: 1 information, 0 warning and 7 error messages.) t- o) z# F; J2 S
请问这是啥原因?我装了RL_ARM啊