|
1 软件程序设计 为了使用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灯,延迟 W6 {+ y/ {3 G) q, V+ U 一段时间,然后通过设置标志触发另一个任务执行,再延迟一段时间之后,熄灭LED灯,等待下一次事7 Q' o5 u4 S% [ o I7 \ 件标志的到来;通过这四个任务的循环触发可以实现四个LED灯循环闪烁,其延迟时间由ADC转换值决定。 OS_TID t_lcd用于将ADC转换值显示在LCD上,按固定时间间隔不断更新。; K" X0 G4 l6 A6 c 除了以上5个任务之外,还有init任务和idle任务,init任务用于创建以上5个任务,该任务在完成之后* G# ~9 V/ W$ h$ C8 t. [1 g 自行删除;idle任务无需创建,永远存在,当系统无其他任务时执行该任务。 ; I' H' a1 g/ H4 K, h. v$ a 2 运行过程) ~6 _: B$ f8 h( B! l; \ (1) 使用MDK通过ULINK 2仿真器连接开发板,或使用两根USB电缆分别将CN1和CN5 与PC机USB端口相连5 n% z, d. a9 T' g& W, C/ Y4 ~ (使用板上自带的UlinkMe); 2 z4 ?, A; b+ G4 f# U# h3 e: n0 J6 q (2) 打开实验例程目录RTX_Blinky下的RTX_Blinky.Uv2工程,将其编译链接后烧写到开发板中;3 W. {; O) y k4 r- d' O) e/ Z (3) 如果程序运行正常,LED1、LED2、LED3、LED4将轮流闪烁,其闪烁顺序与一个四相八拍步进电机 的相序一致;LCD上将会显示AD转换的值"AD value 0x****"; (4) 调整电位器RV1,四个LED灯的闪烁速度将发生变化,LCD上显示的AD转换值也将随之发生变化。 |
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...9 X' \3 R; O" B( ~( \6 p% D$ Y
Blinky.c(61): error: #130: expected a "{"1 U* a% S2 S# r# {
Blinky.c: void phaseA (void) __task {* B2 [2 F! N; g& z. s2 }8 u
Blinky.c: ^
Blinky.c(73): error: #130: expected a "{"5 u5 m, ^/ k: x* M) M6 K
Blinky.c: void phaseB (void) __task {
Blinky.c: ^5 ]8 i( h' S; u9 ~* N+ v0 d
Blinky.c(85): error: #130: expected a "{"
Blinky.c: void phaseC (void) __task {
Blinky.c: ^
Blinky.c(97): error: #130: expected a "{"
Blinky.c: void phaseD (void) __task {
Blinky.c: ^
Blinky.c(111): error: #130: expected a "{"
Blinky.c: void lcd (void) __task {
Blinky.c: ^
Blinky.c(141): error: #130: expected a "{"2 z# t# h N2 L, |0 l% i" }
Blinky.c: void init (void) __task {
Blinky.c: ^* }, e9 I) ~5 k% R2 X
Blinky.c: Blinky.c: 0 warnings, 6 errors: q" x5 y$ Y1 i) a! }7 C
creating preprocessor file for LCD_4bit.c...
compiling LCD_4bit.c...
creating preprocessor file for Setup.c...
compiling Setup.c...+ }2 h8 B5 c/ t% e. w3 `
Setup.c(29): error: #20: identifier "RCC_AHBPeriph_DMA" is undefined
Setup.c: RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA, ENABLE);
Setup.c: ^3 w% ? p5 q. j; M k! o
Setup.c(40): error: #20: identifier "DMA_Channel1" is undefined
Setup.c: DMA_DeInit(DMA_Channel1);' g" P4 Y6 v8 S4 R% _* l6 v
Setup.c: ^7 b$ p& }, \2 T6 f6 v4 z
Setup.c: Setup.c: 0 warnings, 2 errors5 C: B" R2 Y' R5 T6 x
creating preprocessor file for STM32_Init.c...
compiling STM32_Init.c..., o! L) X, R+ t$ i( K
creating preprocessor file for RTX_Config.c...
compiling RTX_Config.c...3 t. q& E! y% [! T4 J. ~7 H T" |
RTX_Config.c(156): error: #130: expected a "{". q- Y" |/ F' v) Z/ [- ~% `+ n
RTX_Config.c: void os_idle_demon (void) __task {
RTX_Config.c: ^
RTX_Config.c: RTX_Config.c: 0 warnings, 1 error" x. Q! v/ t, u. D r: O
creating preprocessor file for Serial.c...
compiling Serial.c...
creating preprocessor file for Retarget.c...
compiling Retarget.c...0 a2 O) M3 m" \( i `* I
Target not created
回复:STM32 RTX多任务方式驱动LED灯 例程
1 软件程序设计
为了使用RTX以多任务的方式驱动LED灯的闪烁,设置5个任务OS_TID t_phaseA、OS_TID t_phaseB、- m' L8 Q3 h1 Q7 f2 H1 n
OS_TID t_phaseC、OS_TID t_phaseD和OS_TID t_lcd。其中前4个任务的作用是点亮某个LED灯,延迟5 f' y8 O/ v4 {$ V
一段时间,然后通过设置标志触发另一个任务执行,再延迟一段时间之后,熄灭LED灯,等待下一次事
件标志的到来;通过这四个任务的循环触发可以实现四个LED灯循环闪烁,其延迟时间由ADC转换值决定。& x. G: B. Q& A5 l* J& {
OS_TID t_lcd用于将ADC转换值显示在LCD上,按固定时间间隔不断更新。
除了以上5个任务之外,还有init任务和idle任务,init任务用于创建以上5个任务,该任务在完成之后+ K. G7 H4 N$ B F
自行删除;idle任务无需创建,永远存在,当系统无其他任务时执行该任务。
9 Z9 x# Y3 P3 b; }9 W4 V
2 运行过程
(1) 使用MDK通过ULINK 2仿真器连接开发板,或使用两根USB电缆分别将CN1和CN5 与PC机USB端口相连
(使用板上自带的UlinkMe); / N \* g, h0 L) l- r0 w
(2) 打开实验例程目录RTX_Blinky下的RTX_Blinky.Uv2工程,将其编译链接后烧写到开发板中;6 v8 C% e0 ]. c W4 E9 M
(3) 如果程序运行正常,LED1、LED2、LED3、LED4将轮流闪烁,其闪烁顺序与一个四相八拍步进电机6 n* k* y, x) I
的相序一致;LCD上将会显示AD转换的值"AD value 0x****";
(4) 调整电位器RV1,四个LED灯的闪烁速度将发生变化,LCD上显示的AD转换值也将随之发生变化。
. e, P$ V. x, H( S) K& ?* j" g( b
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).& L, u+ k) E& R. E+ C- {
.\Obj\Blinky.axf: Error: L6218E: Undefined symbol rt_tsk_create (referred from blinky.o).
.\Obj\Blinky.axf: Error: L6218E: Undefined symbol rt_tsk_delete (referred from blinky.o).% U& y2 X3 j, I* R3 o) _
.\Obj\Blinky.axf: Not enough information to list image symbols.
.\Obj\Blinky.axf: Finished: 1 information, 0 warning and 7 error messages.0 ]. E. D% R9 H1 J
请问这是啥原因?我装了RL_ARM啊