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

关于STM32单片机的问题2

wangxd5429 ( 楼主 ) 2015-11-17 08:16:05  只看该作者 倒序浏览

: N; U- {  R1 z; `  m/ m
各位高手,小弟正在调试一个基于WIFI控制电机的应用。操作系统是mico,开发板是mico-3165。庆科提供了TCP server的源码,测试这个源码时发现,没有执行连接AP的操作。单步调试这个源码,进入mico_system_init.c这个文件中的mico_system_init函数,继续单步调试,运行到“#ifdef
  f, R. g2 j2 k1 G. _! e" E
MICO_WLAN_CONNECtiON_ENABLE”,mico_config.h中已经定义了

: j; _) m+ G: t, m  A9 W9 x  t
MICO_WLAN_CONNECTION_ENABLE这个宏,但是系统没有进入这个分支运行,而是直接跳转到了最后一行“return err”,请教各位高手其中的原因。谢谢。mico_system_init函数的源码如下:

' a% ~$ F% R! S7 {1 X
OSStatus  mico_system_init( mico_Context_t* in_context)
5 m: _- j- e; ?. j6 T; ]' `% h+ D
{
# @( K3 @8 R  h" x; b
OSStatus err = kNoErr;

% Y% u' |3 b$ x' |

) M$ h7 ~: G) x
require_action( in_context, exit, err = kNotPreparedErr );
8 I+ B6 @: P! w; |$ }, _% d
: u0 D" Y5 O9 j7 C: ~$ M" ~
/* Initialize power management daemen */
% ~( b, K2 e. S' Y) F. T9 d/ Z+ z# Y) C
err = mico_system_power_daemon_start( in_context );/*启动电源管理后台*/

) P6 ^. ~/ @% K
require_noerr( err, exit );
: Z6 o% Q4 F7 E/ h
. n' m+ ]2 D0 M8 j" e
/* Initialize mico notify system */
5 A% F+ p8 m) y
err = system_notification_init( in_context );/*初始化通知事件回调机制*/

3 E3 L* K( s' I9 @7 v  v7 S
require_noerr( err, exit );
+ Y0 ^% u% D9 ]- k
! t, Y" j5 L" L- d" d5 r; X* S
#ifdef mico_system_MONITOR_ENABLE
0 a4 s, l+ p+ i, m2 O  Y$ n
/* MiCO system monitor */

! @( z/ C' p) p0 c
err = mico_system_monitor_daemen_start( );

- \/ ~) d, q; Y
require_noerr( err, exit );

* C( o1 A& i) p& W* m
#endif
5 _. \0 ~1 ]* x+ o6 J- a! y

& n- p) c* e' b% ?
#ifdef MICO_CLI_ENABLE
$ z- q4 n) z7 F+ g, S4 {4 Z
/*初始化命令行接口, MiCO command line interface */
: e+ e  A$ v9 Q
cli_init();
7 b, q7 b, H8 `) \; [0 |' Q
#endif

4 a& D0 T( C4 L3 N7 F, U8 W" }( q

/ p7 C! Q; s; x4 e2 q  E0 b" @. m/ \/ ]
/*网卡驱动和TCP/IP协议栈初始化, Network PHY driver and tcp/ipstatic init */

5 Y2 r0 T7 L7 y
err = system_network_daemen_start( in_context );
1 P2 A2 K/ a- a3 W( \. F/ i
require_noerr( err, exit );

1 }# L& T7 \: L! _
1 n% V" z  ~, d$ @" y* P
#ifdef USE_MiCOKit_EXT
7 W7 O2 c  f8 P- i* K& I
/*如果按键按下,则测试扩展板. user test mode to testMiCOKit-EXT board */

" N: A" G/ _' S' y& d) [
if(MicoExtShouldEnterTestMode()){
" S. L) F1 H% \$ t2 Q5 @) B
   system_log("Enter ext-board test mode by key2.");
4 U2 H# D- B2 C$ e8 ]
   micokit_ext_mfg_test(in_context);
0 Q) t; J7 q! n& j% ?2 q
}

# ]: ~; t9 [- A" ~( f' ~. w7 V2 o5 B: n
#endif

" J5 _: R+ l" e* G. m# @. T' _( A
2 _3 J5 u* O; z7 A/ u6 m; d* q
#ifdef MICO_WLAN_CONNECTION_ENABLE

8 h6 Y4 U) {% q+ k$ Q
if( in_context->flashContentInRam.micoSystemConfig.configured ==wLanUnConfigured ||
6 W& s( y) b+ [: L0 K! m/ O
     in_context->flashContentInRam.micoSystemConfig.configured ==unConfigured){
4 j& ]4 S6 I7 w# i4 Y  J( O3 p
   system_log("Empty configuration. Starting configurationmode...");

6 e. r  H. }5 g& y" ]

; ]1 h  x# }8 c" |1 h3 m0 c
#if (MICO_CONFIG_MODE ==CONFIG_MODE_EASYLINK) ||
0 U/ y. C6 Y% R  Q! v
   (MICO_CONFIG_MODE == CONFIG_MODE_SOFT_AP) ||  

! B' O# X8 X1 Z. o( _8 g
    (MICO_CONFIG_MODE == CONFIG_MODE_EASYLINK_WITH_SOFTAP)

' J) [1 ~6 Y* y  s
   err = system_easylink_start( in_context );/*启动EASYLINK*/
" k! v$ u, c. `; s% P8 P* b5 c
   require_noerr( err, exit );

- T; Q, @% a0 ^' ~# }
#elif ( MICO_CONFIG_MODE ==CONFIG_MODE_WAC)

! x# D9 m* \! c% E: \7 c/ J, ?5 d
   err = mico_easylink_start( in_context );

( {; b% Q- e' A8 o' {3 b7 [, g7 y
   require_noerr( err, exit );
! F" L5 e+ L  x
#else
* y# d/ |4 P" B2 p0 O8 t3 [* I5 @
   #error "Wi-Fi configuration mode is not defined"

& j+ k! t; N$ y, j
#endif

+ @. M' u) y5 D  t2 y! l7 Z9 Q
}
4 n4 y) k# T4 B) N0 X; u# m
#ifdef MFG_MODE_AUTO

; r% ]  [% d: v! J  T! u. D# ?
else if( in_context->flashContentInRam.micoSystemConfig.configured ==mfgConfigured ){
- Q1 ~5 H4 v4 F: R6 S  ]) }6 G
   system_log( "Enter MFG mode automatically" );

8 Q0 i3 K% \6 n
   mico_mfg_test( in_context );
( o2 d( b; X1 q6 C! u! B5 q  B+ M7 V
   mico_thread_sleep( MICO_NEVER_TIMEOUT );

" ^: \* Q+ D% }- X
}

; ^; f: C6 x+ d) ]: u. G& t+ [
#endif
% r8 ?. u  {5 h
else{
& k% X0 R! @1 M5 P, R: U7 P
   system_log("Available configuration. Starting Wi-Ficonnection...");
$ g& N' h* i6 T# p% D9 a( Y
   system_connect_wifi_fast( in_context );/*建立WIFI连接*/
" t# s6 |% ^# e6 n8 }
}

8 ?& s" t: X6 }) g: p: n7 b
#endif

+ y# Y% \4 K# F0 v& I' u

5 _6 F+ D# \$ u3 F
/*Local configuration server*/
- \! H6 j1 ~' v0 v  k( S) Y
#ifdef MICO_CONFIG_SERVER_ENABLE
& F  E: U, F& f  [. W$ I
config_server_start( in_context );/*创建本地配置服务器*/
, Z5 u# n4 i# P/ T' t! s; A
#endif

2 C: k9 G) I4 i0 q( U9 \% E5 C/ ?

/ C/ {. l2 @6 W
require_noerr_action( err, exit, system_log("Closing main threadwith err num: %d.", err) );

7 I- i4 f' _0 c, L* W
exit:

% Q% n# z: Y2 {4 |' |$ l: W4 C

% n1 F/ c, Q/ I4 B
return err;
}) S9 V9 r: q( G/ e7 [2 i

0个回复

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

本版积分规则


关闭

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

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

GMT+8, 2025-12-2 02:16 , Processed in 0.608589 second(s), Total 34, Slave 24 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

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