关于STM32单片机的问题2 - 问答 - 电子技术论坛 - 最好最受欢迎电子论坛!

关于STM32单片机的问题2

wangxd5429 ( 楼主 ) 2015-11-17 08:16:05  只看该作者 倒序浏览
* e# d9 {" O; s7 W- n) l
各位高手,小弟正在调试一个基于WIFI控制电机的应用。操作系统是mico,开发板是mico-3165。庆科提供了TCP server的源码,测试这个源码时发现,没有执行连接AP的操作。单步调试这个源码,进入mico_system_init.c这个文件中的mico_system_init函数,继续单步调试,运行到“#ifdef

, D6 v7 m7 R$ R) G6 V
MICO_WLAN_CONNECtiON_ENABLE”,mico_config.h中已经定义了

! |! O; i  `9 m; H5 i$ b
MICO_WLAN_CONNECTION_ENABLE这个宏,但是系统没有进入这个分支运行,而是直接跳转到了最后一行“return err”,请教各位高手其中的原因。谢谢。mico_system_init函数的源码如下:

  V1 g4 Y9 ]% U% a) S5 D4 h
OSStatus  mico_system_init( mico_Context_t* in_context)

( e3 h& Y  A! o/ x: {2 f
{

" q  z' Y- m- u& a; X# k  @- G
OSStatus err = kNoErr;

" G$ T4 p& J3 ]+ `7 p2 S
4 f: y" x8 Y* w' m* E' R
require_action( in_context, exit, err = kNotPreparedErr );

  c: n) t/ c  ]4 \) T# `! B
" z0 a6 j& u+ [
/* Initialize power management daemen */
2 ~; M9 u5 `1 n
err = mico_system_power_daemon_start( in_context );/*启动电源管理后台*/
2 U% H) C9 j% ]# E
require_noerr( err, exit );

1 O. n3 p8 G/ L9 G/ {
! G, k- c; P! S7 `" g8 F7 P
/* Initialize mico notify system */
1 c: b) k" I2 R/ J5 {
err = system_notification_init( in_context );/*初始化通知事件回调机制*/
0 m+ Q9 F. }5 W1 X+ `2 E
require_noerr( err, exit );
9 ~) r2 |  P+ t0 M6 R) j
, T) a+ O6 b# {% {1 h/ l1 [' S7 l
#ifdef mico_system_MONITOR_ENABLE

0 i. S- S7 j6 S" h9 m( i
/* MiCO system monitor */

0 c+ y2 Q" }9 \% I, N
err = mico_system_monitor_daemen_start( );

: |$ J" j" s3 l  _$ }' v8 Y
require_noerr( err, exit );

  p/ r( I. M( V# d: d4 v
#endif
( z/ b& n  C+ m* ~: q

/ T: V. r& \+ X7 x# ^, x- f0 J  m
#ifdef MICO_CLI_ENABLE
& b# h- o  t; K
/*初始化命令行接口, MiCO command line interface */
- D5 v' P  s& \# B# A  a: N
cli_init();
5 K+ I- C$ c$ j7 m# b' W2 u, {6 v
#endif

7 i5 Y; Z* z! M
9 h$ k! B# D) S5 A, p" h7 m
/*网卡驱动和TCP/IP协议栈初始化, Network PHY driver and tcp/ipstatic init */
1 y- L* Q) m4 b+ o1 {9 T6 q2 k
err = system_network_daemen_start( in_context );
7 Y; S/ S8 k) C$ r- F- P, c
require_noerr( err, exit );
" P  c1 b% ?. A9 \- ^! p, a

* Q0 W) U2 d0 q% [7 ~
#ifdef USE_MiCOKit_EXT

- E  V; @/ N. Q- J/ V
/*如果按键按下,则测试扩展板. user test mode to testMiCOKit-EXT board */
# g2 ]+ L& A6 |0 M: W5 c; p
if(MicoExtShouldEnterTestMode()){
  A' p. W% m5 v: Z, G) I% Y
   system_log("Enter ext-board test mode by key2.");

; f7 ]# C- v. m8 G  S
   micokit_ext_mfg_test(in_context);

% o/ r! R; W" M4 N% m, g
}

* Z7 m0 ~9 \  A- H* o" i
#endif

7 c" a, t" y" Z! N

- ~5 g1 `* e  f' p
#ifdef MICO_WLAN_CONNECTION_ENABLE

0 G/ f4 D+ t8 @. C& d
if( in_context->flashContentInRam.micoSystemConfig.configured ==wLanUnConfigured ||

! H1 _0 \4 `. S( N' _
     in_context->flashContentInRam.micoSystemConfig.configured ==unConfigured){

# f% U- ]+ W6 h4 B
   system_log("Empty configuration. Starting configurationmode...");
& A8 h# @& s! b; Q8 q5 f2 i2 Q
2 d/ n2 A; ], C
#if (MICO_CONFIG_MODE ==CONFIG_MODE_EASYLINK) ||

, S& D! @+ d- J  y& _
   (MICO_CONFIG_MODE == CONFIG_MODE_SOFT_AP) ||  

  R1 ?' h9 ]( v% k9 U. r- C( S% Y  n
    (MICO_CONFIG_MODE == CONFIG_MODE_EASYLINK_WITH_SOFTAP)
4 j' o7 H5 R6 U# {. x
   err = system_easylink_start( in_context );/*启动EASYLINK*/

4 G& Y% ~4 O0 W( ], E. S. X
   require_noerr( err, exit );
7 F+ Q# ^8 Y# g" z" w- a, i
#elif ( MICO_CONFIG_MODE ==CONFIG_MODE_WAC)
/ _4 S* g4 t) }' @6 @' p! Y6 c+ a
   err = mico_easylink_start( in_context );

2 T$ ~& |, @" l
   require_noerr( err, exit );

( d3 z0 U, h3 L4 w0 u
#else
- j  R( W' P- q/ \* o6 x1 a
   #error "Wi-Fi configuration mode is not defined"

8 i; @7 n! a% Z
#endif
% l8 w" A7 ?1 r! N$ r, Q
}
, d% |+ {( h/ C1 K
#ifdef MFG_MODE_AUTO
$ d) {, r0 U/ n- i; h! n; s
else if( in_context->flashContentInRam.micoSystemConfig.configured ==mfgConfigured ){
8 b3 S9 ~: A& G9 r& p- l
   system_log( "Enter MFG mode automatically" );

3 K' D  ~5 C4 N5 k7 @5 Y+ v  c% X
   mico_mfg_test( in_context );

$ Y. C. \: }8 y
   mico_thread_sleep( MICO_NEVER_TIMEOUT );

# x9 U, H9 h: l7 c' S
}

% N& W3 q+ W& N" ^! M- `( d, c
#endif
( j- e, f' K* |; G* |: e) ^
else{

5 N4 n) N' D" f. b
   system_log("Available configuration. Starting Wi-Ficonnection...");

9 B  m* ]; b6 b% H9 w0 L; T+ }
   system_connect_wifi_fast( in_context );/*建立WIFI连接*/

/ N; t' P, ^9 V+ ^, r
}

2 m4 _; r* I3 r9 H$ H' h/ ?5 C
#endif
& z4 d4 B( O3 b; F3 o

. ?( T8 _  @, ]4 G& B
/*Local configuration server*/

& _3 l2 ?+ k* Y+ n6 t
#ifdef MICO_CONFIG_SERVER_ENABLE
) z+ o1 S& Z7 C' h8 t
config_server_start( in_context );/*创建本地配置服务器*/

; w8 z: W4 F: y, \4 F
#endif

5 z: m: d% i+ q8 r- m& ^  K8 r
) A- A! j% r" F: h  X
require_noerr_action( err, exit, system_log("Closing main threadwith err num: %d.", err) );
: T0 `3 I& s" Q" ^( t- e
exit:
5 p6 X6 c. R' x' f. T6 I: p& ]

) h4 `' f9 ?6 L: Q0 O, q5 E
return err;
}
, \+ J7 o6 f& d" i& Z/ M5 k( S

0个回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

站长推荐上一条 /6 下一条

小黑屋|手机版|Archiver|电子发烧友 ( 湘ICP备2023018690号 )

GMT+8, 2024-12-21 11:13 , Processed in 0.365507 second(s), Total 33, Slave 24 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表