
1 软件程序设计$ s% h& L" B/ J w# j 为了使用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灯,等待下一次事 件标志的到来;通过这四个任务的循环触发可以实现四个LED灯循环闪烁,其延迟时间由ADC转换值决定。3 c. u* p1 ]0 m. M, Q2 o: ? OS_TID t_lcd用于将ADC转换值显示在LCD上,按固定时间间隔不断更新。 除了以上5个任务之外,还有init任务和idle任务,init任务用于创建以上5个任务,该任务在完成之后! C/ l% G; T! W2 L, F9 O% Z% W! C 自行删除;idle任务无需创建,永远存在,当系统无其他任务时执行该任务。 e& G. `0 j, q( ? 2 运行过程 (1) 使用MDK通过ULINK 2仿真器连接开发板,或使用两根USB电缆分别将CN1和CN5 与PC机USB端口相连 (使用板上自带的UlinkMe); (2) 打开实验例程目录RTX_Blinky下的RTX_Blinky.Uv2工程,将其编译链接后烧写到开发板中; (3) 如果程序运行正常,LED1、LED2、LED3、LED4将轮流闪烁,其闪烁顺序与一个四相八拍步进电机 w( a2 z6 ~2 i+ D/ }" d 的相序一致;LCD上将会显示AD转换的值"AD value 0x****";4 d* v! b9 _. k! Y7 w (4) 调整电位器RV1,四个LED灯的闪烁速度将发生变化,LCD上显示的AD转换值也将随之发生变化。0 ?3 ` t* V& N% | |
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...
Blinky.c(61): error: #130: expected a "{"
Blinky.c: void phaseA (void) __task {
Blinky.c: ^) ] v8 p- }- M f
Blinky.c(73): error: #130: expected a "{"
Blinky.c: void phaseB (void) __task {( ?3 s8 d8 z0 h" k" b
Blinky.c: ^7 n! O/ S1 u/ k; _& D2 R9 w4 o
Blinky.c(85): error: #130: expected a "{"( a# R6 V0 k3 m$ v( `
Blinky.c: void phaseC (void) __task {* A8 X) B$ }1 E# q2 U2 ~# t' S
Blinky.c: ^
Blinky.c(97): error: #130: expected a "{"
Blinky.c: void phaseD (void) __task {$ Z# p. L7 P; Y5 N9 D3 F( d& h
Blinky.c: ^
Blinky.c(111): error: #130: expected a "{"
Blinky.c: void lcd (void) __task {
Blinky.c: ^
Blinky.c(141): error: #130: expected a "{"5 g& _; n' h. _: R
Blinky.c: void init (void) __task {
Blinky.c: ^) A* F# O* z4 N
Blinky.c: Blinky.c: 0 warnings, 6 errors
creating preprocessor file for LCD_4bit.c...
compiling LCD_4bit.c... E/ j: I5 C+ o
creating preprocessor file for Setup.c...# S% l' F. a( x N
compiling Setup.c...
Setup.c(29): error: #20: identifier "RCC_AHBPeriph_DMA" is undefined
Setup.c: RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA, ENABLE);* n J2 J" N8 V4 T3 _* N, }
Setup.c: ^
Setup.c(40): error: #20: identifier "DMA_Channel1" is undefined. G1 Z4 |0 v* j
Setup.c: DMA_DeInit(DMA_Channel1);4 v& L- H0 [' N1 I- h
Setup.c: ^
Setup.c: Setup.c: 0 warnings, 2 errors
creating preprocessor file for STM32_Init.c...; _2 p+ k) \( J i. p
compiling STM32_Init.c...
creating preprocessor file for RTX_Config.c.... l* x( P7 }7 ~; y
compiling RTX_Config.c...
RTX_Config.c(156): error: #130: expected a "{". F$ \4 k+ A3 o, l
RTX_Config.c: void os_idle_demon (void) __task {/ P7 C" \4 ]: ^& b: L3 Q: g
RTX_Config.c: ^
RTX_Config.c: RTX_Config.c: 0 warnings, 1 error$ D8 C; ? X7 F% E9 x
creating preprocessor file for Serial.c...
compiling Serial.c...
creating preprocessor file for Retarget.c...
compiling Retarget.c...' Q( U( ]7 d$ F1 ~( l
Target not created
回复:STM32 RTX多任务方式驱动LED灯 例程
1 软件程序设计
为了使用RTX以多任务的方式驱动LED灯的闪烁,设置5个任务OS_TID t_phaseA、OS_TID t_phaseB、6 D3 e, O) y4 C) a6 l7 R7 Z+ r1 K2 v
OS_TID t_phaseC、OS_TID t_phaseD和OS_TID t_lcd。其中前4个任务的作用是点亮某个LED灯,延迟/ ]/ h- U1 Y# R
一段时间,然后通过设置标志触发另一个任务执行,再延迟一段时间之后,熄灭LED灯,等待下一次事1 i1 M6 d4 n8 Y4 A$ t, m$ A
件标志的到来;通过这四个任务的循环触发可以实现四个LED灯循环闪烁,其延迟时间由ADC转换值决定。
OS_TID t_lcd用于将ADC转换值显示在LCD上,按固定时间间隔不断更新。7 j8 O4 Q4 v# ^0 S8 T8 U# P
除了以上5个任务之外,还有init任务和idle任务,init任务用于创建以上5个任务,该任务在完成之后
自行删除;idle任务无需创建,永远存在,当系统无其他任务时执行该任务。
) p- Y7 p) B( D: m( V- {
2 运行过程
(1) 使用MDK通过ULINK 2仿真器连接开发板,或使用两根USB电缆分别将CN1和CN5 与PC机USB端口相连* O/ r# y& ~7 C! a, f
(使用板上自带的UlinkMe);
(2) 打开实验例程目录RTX_Blinky下的RTX_Blinky.Uv2工程,将其编译链接后烧写到开发板中;
(3) 如果程序运行正常,LED1、LED2、LED3、LED4将轮流闪烁,其闪烁顺序与一个四相八拍步进电机+ z8 z# i0 u. T' E
的相序一致;LCD上将会显示AD转换的值"AD value 0x****";, ]; ?7 o) ?, T; v1 |' M N: {* D7 W
(4) 调整电位器RV1,四个LED灯的闪烁速度将发生变化,LCD上显示的AD转换值也将随之发生变化。
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).: q9 ~2 ~! f" y% Z
.\Obj\Blinky.axf: Error: L6218E: Undefined symbol rt_sys_init (referred from blinky.o).& N2 A; ]7 P% S3 {* V
.\Obj\Blinky.axf: Error: L6218E: Undefined symbol rt_tsk_create (referred from blinky.o).# r9 V* ]+ E, Y. n {; j, X7 K2 e
.\Obj\Blinky.axf: Error: L6218E: Undefined symbol rt_tsk_delete (referred from blinky.o). W& t# q% ?3 m4 }$ K1 U
.\Obj\Blinky.axf: Not enough information to list image symbols." O2 k* l1 v% X9 i( p2 J8 Y
.\Obj\Blinky.axf: Finished: 1 information, 0 warning and 7 error messages.
请问这是啥原因?我装了RL_ARM啊