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

关于STM32单片机的问题2

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

& }- J) V% _/ ]7 d
各位高手,小弟正在调试一个基于WIFI控制电机的应用。操作系统是mico,开发板是mico-3165。庆科提供了TCP server的源码,测试这个源码时发现,没有执行连接AP的操作。单步调试这个源码,进入mico_system_init.c这个文件中的mico_system_init函数,继续单步调试,运行到“#ifdef
& O. |* t3 a" o' y! `6 g
MICO_WLAN_CONNECtiON_ENABLE”,mico_config.h中已经定义了
* b% Z7 t9 t7 \0 c  R. d
MICO_WLAN_CONNECTION_ENABLE这个宏,但是系统没有进入这个分支运行,而是直接跳转到了最后一行“return err”,请教各位高手其中的原因。谢谢。mico_system_init函数的源码如下:
( e7 h" Y9 [: e* c6 g
OSStatus  mico_system_init( mico_Context_t* in_context)
* R2 p; L. b2 {# t( @
{

! a* q0 x% x  l- n- B
OSStatus err = kNoErr;

4 g2 t" Z5 n1 }3 G/ }- V3 b

7 h: \0 f" w: p- @$ K( u4 C
require_action( in_context, exit, err = kNotPreparedErr );

6 B& W7 }% N' R& B4 N
$ v: z- G2 \; u$ Q
/* Initialize power management daemen */
# l  Q  M- q( ^
err = mico_system_power_daemon_start( in_context );/*启动电源管理后台*/
) u& F& k/ S4 w5 V
require_noerr( err, exit );

/ y; m6 v, @# d; e  i5 n  n3 T% \

( }9 F8 [8 U0 n" {
/* Initialize mico notify system */
/ X3 ~* _" Y' m
err = system_notification_init( in_context );/*初始化通知事件回调机制*/

; Y/ l7 T6 Y) K, c( [& a
require_noerr( err, exit );

+ ?  Y( [* Q' m. I. r7 a" p* o" k+ I
" m- h. A8 s: I& Z9 v( j6 X; u
#ifdef mico_system_MONITOR_ENABLE
# m- M& q2 S5 F
/* MiCO system monitor */

$ X5 D; P. F. d9 y  K5 E' `
err = mico_system_monitor_daemen_start( );

! a, x. r1 }1 f# T
require_noerr( err, exit );

2 Y" {+ b9 a* }8 R6 n, u! _
#endif

9 K3 U3 ~" H% b  s
1 m) b7 M; P4 b) f5 F) f5 L7 L$ O
#ifdef MICO_CLI_ENABLE
4 a. G; q- R. f) o5 b
/*初始化命令行接口, MiCO command line interface */

' t( l5 i! {3 p! [, }: L
cli_init();
2 `1 E2 e; U  y% L6 M. ~
#endif
; T; p. i. w# j
  H3 Q5 Q9 C7 X; y5 T( O2 ~  H" C
/*网卡驱动和TCP/IP协议栈初始化, Network PHY driver and tcp/ipstatic init */
! c! l0 O* s1 }( \
err = system_network_daemen_start( in_context );
& L* }0 f- \% }; H
require_noerr( err, exit );

8 @% {; l/ Q, L- D$ l; ]

1 `- g+ \! j$ m& c1 O
#ifdef USE_MiCOKit_EXT

0 E& t9 Q# d! ?+ Q/ V
/*如果按键按下,则测试扩展板. user test mode to testMiCOKit-EXT board */
( c6 \5 ?+ i* G1 ^: |: A9 w  U
if(MicoExtShouldEnterTestMode()){
! X+ ^; K: f* D& A0 {
   system_log("Enter ext-board test mode by key2.");

; d/ _5 `9 @% E# L) M
   micokit_ext_mfg_test(in_context);
% p# o) k9 T; }4 [
}

9 F1 |* `- v3 x5 S
#endif

( ^  I% R! K+ |4 B5 ^. I* ~
# b4 L6 f) \! r2 V3 |
#ifdef MICO_WLAN_CONNECTION_ENABLE
3 z  C5 N+ {4 Z
if( in_context->flashContentInRam.micoSystemConfig.configured ==wLanUnConfigured ||
/ Y( F% R: g9 h5 x& Q0 q! ]
     in_context->flashContentInRam.micoSystemConfig.configured ==unConfigured){

9 Y& ]8 i- x0 ^+ B/ t0 X+ o
   system_log("Empty configuration. Starting configurationmode...");

" {! @1 V7 h9 c

3 K/ {9 J5 I; @8 [( H
#if (MICO_CONFIG_MODE ==CONFIG_MODE_EASYLINK) ||

' a; b) p. L8 F( f: Y5 @$ T2 `
   (MICO_CONFIG_MODE == CONFIG_MODE_SOFT_AP) ||  
% @: d3 I7 M0 D
    (MICO_CONFIG_MODE == CONFIG_MODE_EASYLINK_WITH_SOFTAP)
7 N; n. P5 c3 N0 O% b0 v
   err = system_easylink_start( in_context );/*启动EASYLINK*/
) a! D9 ^% z" I  O% g7 _
   require_noerr( err, exit );
' N  ~4 G$ x+ _7 p/ f3 W6 p  X# s6 i
#elif ( MICO_CONFIG_MODE ==CONFIG_MODE_WAC)

+ l  s+ j( M3 `3 {: f  b' X
   err = mico_easylink_start( in_context );

* c  u2 i$ u  v, y7 ?
   require_noerr( err, exit );

* Q/ V8 D0 d2 U
#else
4 `( I( Z& Z* I6 g7 }# p
   #error "Wi-Fi configuration mode is not defined"

) p8 k/ a9 g5 z4 p) G, q2 p# S
#endif
$ e" @7 y; ~& T! s$ S; q/ l5 s8 q
}

" `9 j* t& }. G, g( _: D% ~' q
#ifdef MFG_MODE_AUTO

4 e" a# p3 V6 }5 E  S
else if( in_context->flashContentInRam.micoSystemConfig.configured ==mfgConfigured ){
4 M# R9 x% H( Q: G3 }, _- G4 z
   system_log( "Enter MFG mode automatically" );

+ N/ G( P* Q2 i1 K" z
   mico_mfg_test( in_context );

2 Q7 X0 i, X0 F% |. {6 y
   mico_thread_sleep( MICO_NEVER_TIMEOUT );
! G6 r8 ?( t5 q# l; y4 s/ E
}
' |8 c. l3 }0 z- R+ h9 |
#endif
  [0 f. t5 Z3 S$ R
else{
7 g+ v3 e$ M3 a9 |  ]
   system_log("Available configuration. Starting Wi-Ficonnection...");
5 Q+ c  i9 U  s% E; c
   system_connect_wifi_fast( in_context );/*建立WIFI连接*/
3 }% f/ W, E% H9 ]
}
$ ^# C: k) o  S: |9 T
#endif

5 s# o" V6 [1 s: w' v  \0 D
2 v) f  c& ?$ V, R3 b1 t9 L
/*Local configuration server*/
6 x) R. g5 V, P. F  c
#ifdef MICO_CONFIG_SERVER_ENABLE

  U8 k8 v8 J2 ^' W# A8 u7 s
config_server_start( in_context );/*创建本地配置服务器*/
2 L% L" }" e# `. h! j
#endif

: R9 ^6 K3 }7 S4 M6 i
7 h( t& `( g" H& s  b( v9 h8 D
require_noerr_action( err, exit, system_log("Closing main threadwith err num: %d.", err) );

  X5 }/ ]3 F' _* z7 ~
exit:
0 z* V* y8 p* @, z) u3 J

$ ?6 ~# k0 K& n( b1 D/ k
return err;
}) _, B8 m/ e$ l+ L6 `

0个回复

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

本版积分规则


关闭

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

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

GMT+8, 2024-12-21 14:01 , Processed in 0.431462 second(s), Total 36, Slave 26 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

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