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

关于STM32单片机的问题2

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

6 M) K4 D( @: I  U
各位高手,小弟正在调试一个基于WIFI控制电机的应用。操作系统是mico,开发板是mico-3165。庆科提供了TCP server的源码,测试这个源码时发现,没有执行连接AP的操作。单步调试这个源码,进入mico_system_init.c这个文件中的mico_system_init函数,继续单步调试,运行到“#ifdef

" `7 h3 E6 j2 }3 u
MICO_WLAN_CONNECtiON_ENABLE”,mico_config.h中已经定义了

; k$ X1 Q4 `# u) l, {
MICO_WLAN_CONNECTION_ENABLE这个宏,但是系统没有进入这个分支运行,而是直接跳转到了最后一行“return err”,请教各位高手其中的原因。谢谢。mico_system_init函数的源码如下:

& j+ n# g5 u- c8 g1 ~) T5 k* f
OSStatus  mico_system_init( mico_Context_t* in_context)
, o: }8 b  r8 t3 V0 U" W1 z2 @# R
{

1 ?1 _. T6 X* Q) U. u$ h2 J, W
OSStatus err = kNoErr;
* a" G$ m4 ~6 s; ~
4 `3 g9 b6 k, }! F
require_action( in_context, exit, err = kNotPreparedErr );

" y# N8 T) S# q! T: u8 z. q2 r+ g- R
* C" w: C  \0 g2 ]. \6 n4 j
/* Initialize power management daemen */

7 \0 E! M+ p1 W2 b" m
err = mico_system_power_daemon_start( in_context );/*启动电源管理后台*/

5 _- Q' @  O: A
require_noerr( err, exit );
  j! G$ g2 o; w' ^) T1 y6 H: L

, C& ]0 U" e: ?& w7 W
/* Initialize mico notify system */
: y8 ]5 g# R; q, F
err = system_notification_init( in_context );/*初始化通知事件回调机制*/
, g0 {( ~/ D0 H4 O6 G1 w, a8 S
require_noerr( err, exit );
4 e2 Y2 W. g' \; e6 L

+ C. ]6 X4 \1 @
#ifdef mico_system_MONITOR_ENABLE
; j' v4 B' o# k4 F) w" C
/* MiCO system monitor */

# }4 s) Z0 f* G
err = mico_system_monitor_daemen_start( );
' J/ g" u; Z5 ^$ {; M# d$ `) ]1 S" Q
require_noerr( err, exit );

  E/ X2 `* b5 T; b0 C7 a
#endif
* ?4 q( Y  V2 D6 B

* g$ D# x; t% O+ D9 U* T0 A
#ifdef MICO_CLI_ENABLE
% M9 {6 L# ]+ c/ Q" `) j& Y
/*初始化命令行接口, MiCO command line interface */
( F9 [3 j; g( B' {3 q3 B
cli_init();

% c4 \& ]8 C! T% ^; j
#endif
" k: \# U4 }7 I, X

% @2 p# q2 |: c7 P
/*网卡驱动和TCP/IP协议栈初始化, Network PHY driver and tcp/ipstatic init */
+ a& z; z" {) {
err = system_network_daemen_start( in_context );
% F; K9 S! `5 h- W
require_noerr( err, exit );
( x+ _) ?7 y  |* `) v. P
* w% }* K  s1 T6 {7 b3 l/ g
#ifdef USE_MiCOKit_EXT

2 ~* }# f6 ~! O; ^& s
/*如果按键按下,则测试扩展板. user test mode to testMiCOKit-EXT board */
. d7 I2 b) {! O
if(MicoExtShouldEnterTestMode()){
. z9 N# s) @3 Y  P( M
   system_log("Enter ext-board test mode by key2.");

- u6 X: o4 \# f( s
   micokit_ext_mfg_test(in_context);

8 ]' y/ w: ^2 [9 n% C
}
* P+ h7 X! c1 Q# }4 v' W! U- Z
#endif
$ e2 Z7 L  D/ v% f/ e

) R" Q+ [4 {4 g2 o' I- F; A
#ifdef MICO_WLAN_CONNECTION_ENABLE
% n9 d) z+ P5 A0 v2 w
if( in_context->flashContentInRam.micoSystemConfig.configured ==wLanUnConfigured ||

% Y; x# }+ b+ M3 J9 F$ [
     in_context->flashContentInRam.micoSystemConfig.configured ==unConfigured){
/ S) ]: \' C. O5 w! v1 k: p
   system_log("Empty configuration. Starting configurationmode...");

4 z5 J4 x4 t* O  B7 j) t, _9 C

/ s" Z& V. O* m
#if (MICO_CONFIG_MODE ==CONFIG_MODE_EASYLINK) ||

, }4 n0 P! w' @- D) l, Y
   (MICO_CONFIG_MODE == CONFIG_MODE_SOFT_AP) ||  

% @5 h3 D3 R0 I+ Y) y' b
    (MICO_CONFIG_MODE == CONFIG_MODE_EASYLINK_WITH_SOFTAP)

3 a" }3 O) v! |9 h2 l# I
   err = system_easylink_start( in_context );/*启动EASYLINK*/
9 S1 j  D+ c1 I( T. y; Z( c% K
   require_noerr( err, exit );
$ g5 i4 Q* G, a3 T, \  o: `- d9 \
#elif ( MICO_CONFIG_MODE ==CONFIG_MODE_WAC)

" Z. I2 T( a% w% k
   err = mico_easylink_start( in_context );
9 s$ y# A( C$ c0 ~7 X& d& f
   require_noerr( err, exit );

$ u$ K% e) o: Q8 z% ]
#else

" y5 v" J/ ~' M6 c& Z
   #error "Wi-Fi configuration mode is not defined"

% B4 E. Q/ Z" r# G6 ^
#endif

% o2 ^" N5 [' V7 l/ f+ p
}

0 K  L4 A5 f/ ?  D/ y$ |6 l
#ifdef MFG_MODE_AUTO
( s* S" |7 a6 y- T9 C
else if( in_context->flashContentInRam.micoSystemConfig.configured ==mfgConfigured ){

0 I* `3 E0 j6 ~. V
   system_log( "Enter MFG mode automatically" );
3 @  u: D9 \& {) o( t0 a
   mico_mfg_test( in_context );

7 Z- j3 ]* E& Z7 `$ e
   mico_thread_sleep( MICO_NEVER_TIMEOUT );
! T+ B6 v# Q6 N/ V: c# O3 h' X- w
}

) a0 W& K" J( Y, X5 x4 i& b3 b
#endif

7 t5 b# I8 l& N/ p
else{

3 k( N- Q9 i& ]  B0 H0 o3 ]
   system_log("Available configuration. Starting Wi-Ficonnection...");

" p0 t+ J  i& o7 _" w0 O
   system_connect_wifi_fast( in_context );/*建立WIFI连接*/
2 {6 e& S- a$ w  y" p
}
  }2 H7 y5 w# Z/ q, q1 y% A
#endif

/ B- _* u1 h- M: V

+ ]  B% A9 V4 i- I9 s" m  s
/*Local configuration server*/

. M% s4 r/ `- E
#ifdef MICO_CONFIG_SERVER_ENABLE

1 U6 @% f/ _& S5 C
config_server_start( in_context );/*创建本地配置服务器*/

! B8 Z7 s8 |) E( e
#endif
+ j: h: A3 K  x; R" q
% p8 N# ]; R+ |: G
require_noerr_action( err, exit, system_log("Closing main threadwith err num: %d.", err) );

4 d* _# {  O2 W
exit:
1 ^3 A! n: C4 h; f6 Y6 Y( f

- O$ a9 A8 t2 m4 e6 c
return err;
}
, f& E$ w$ b. [' \

0个回复

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

本版积分规则


关闭

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

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

GMT+8, 2025-12-11 19:23 , Processed in 0.470429 second(s), Total 36, Slave 26 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

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