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

关于STM32单片机的问题2

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

, z) |9 l( p: T6 D$ H/ m
各位高手,小弟正在调试一个基于WIFI控制电机的应用。操作系统是mico,开发板是mico-3165。庆科提供了TCP server的源码,测试这个源码时发现,没有执行连接AP的操作。单步调试这个源码,进入mico_system_init.c这个文件中的mico_system_init函数,继续单步调试,运行到“#ifdef
" _! f) V0 i+ k" U: V
MICO_WLAN_CONNECtiON_ENABLE”,mico_config.h中已经定义了
: Y$ h6 i! |4 L  W; \. l- }
MICO_WLAN_CONNECTION_ENABLE这个宏,但是系统没有进入这个分支运行,而是直接跳转到了最后一行“return err”,请教各位高手其中的原因。谢谢。mico_system_init函数的源码如下:
( _/ v- I6 p* a7 v& H2 V' {) F
OSStatus  mico_system_init( mico_Context_t* in_context)

* B2 ^' L' T* B: A; }) C1 G2 \& {0 E" M
{
$ n% p3 t9 N! `" ~
OSStatus err = kNoErr;
9 s" y8 R& l5 v6 C: s
$ ~+ A! e1 ?2 V$ S- m
require_action( in_context, exit, err = kNotPreparedErr );
/ J8 y0 i) P1 ~% u  v8 S
4 I4 y* H1 N8 x" |7 `* n
/* Initialize power management daemen */
% ]3 ~9 B4 K( A" i$ }& e' S* I1 E
err = mico_system_power_daemon_start( in_context );/*启动电源管理后台*/
; D! L% D( `& V  ~# s. n7 t
require_noerr( err, exit );
$ r. N1 j7 r$ J
- D) a: }, ]& Y1 ?
/* Initialize mico notify system */

" ~0 d3 x! C, u! W# x5 p+ F
err = system_notification_init( in_context );/*初始化通知事件回调机制*/

8 _0 [) f' M6 h8 Q, b0 k
require_noerr( err, exit );

& [( Q6 ?! ?! D8 t

% I3 w$ t% o& J# u
#ifdef mico_system_MONITOR_ENABLE
8 x8 a! @' z; e
/* MiCO system monitor */

; E# q1 H' M, \4 Q4 {1 {
err = mico_system_monitor_daemen_start( );

+ x& \7 h3 m( L; \  r
require_noerr( err, exit );

1 M# Y# Y7 K9 C  D* B
#endif

& y& b% b  O: U3 {$ h' m
, Z1 S  Q) a7 m+ V
#ifdef MICO_CLI_ENABLE
/ v+ t+ E+ X, q4 a: {/ F9 \
/*初始化命令行接口, MiCO command line interface */

& o- ^# n2 F5 A' g# ~* P
cli_init();
, B1 O3 H# U$ M# a
#endif
5 [7 j+ S& v1 X, U8 m$ f

% o3 M9 v: ?# q* w$ g( k4 W, S* C
/*网卡驱动和TCP/IP协议栈初始化, Network PHY driver and tcp/ipstatic init */

8 J1 n: Q5 ~0 R. J; j9 B  K
err = system_network_daemen_start( in_context );
1 t& [$ Z+ Q, V, M% i
require_noerr( err, exit );
! a1 z6 r# Z. {: S4 E. A; ^2 p

+ x( ~' p1 h* K6 r- i) {" W
#ifdef USE_MiCOKit_EXT

  |1 ^) }( |1 b  y- [
/*如果按键按下,则测试扩展板. user test mode to testMiCOKit-EXT board */

# ^  u; b8 B8 N0 c# B
if(MicoExtShouldEnterTestMode()){
5 X) H- D! v* S5 s# U( f. {
   system_log("Enter ext-board test mode by key2.");

6 C9 k/ E8 M8 l' b
   micokit_ext_mfg_test(in_context);

( p  V4 o! ]0 Z+ A
}
4 I+ Q, z! U; `: v  u3 D
#endif
: H5 ^! j& k1 \2 W& ^1 K2 }2 O

9 u5 p$ k% Y4 r# q. V; [) k' f
#ifdef MICO_WLAN_CONNECTION_ENABLE

' ?" Q" Z- P2 s3 r7 f7 Z
if( in_context->flashContentInRam.micoSystemConfig.configured ==wLanUnConfigured ||

  J8 X/ ~' B0 g5 M( G7 w; T) C- ^
     in_context->flashContentInRam.micoSystemConfig.configured ==unConfigured){
- @2 C, x. f) s6 T
   system_log("Empty configuration. Starting configurationmode...");
/ j* R7 g  |+ {3 p

6 w  h  p0 D) I4 K5 `5 F- {
#if (MICO_CONFIG_MODE ==CONFIG_MODE_EASYLINK) ||
' c. T: o/ k% V& D9 n/ z! k
   (MICO_CONFIG_MODE == CONFIG_MODE_SOFT_AP) ||  

' n1 r4 h; H9 |& A, C1 t3 X
    (MICO_CONFIG_MODE == CONFIG_MODE_EASYLINK_WITH_SOFTAP)
% p9 V& i8 P4 n( K$ N7 X
   err = system_easylink_start( in_context );/*启动EASYLINK*/

& h( c9 |6 x4 P$ n0 D4 Q- h# Q; C! V
   require_noerr( err, exit );

' m9 O8 O# ~, G! `1 d
#elif ( MICO_CONFIG_MODE ==CONFIG_MODE_WAC)
0 v+ ]  R5 T+ m0 D" t' ]$ N2 y
   err = mico_easylink_start( in_context );
/ b5 {& o% H' n% s( j% R
   require_noerr( err, exit );

3 T* }2 n/ D1 W; z9 ]7 n. O" p$ z1 T: E1 {
#else

& R8 J7 z! h# v! _; T# Z% I' M8 h
   #error "Wi-Fi configuration mode is not defined"

- @# u* u; G, F( K7 ^
#endif

. w# D9 m  c( k* F8 `9 l
}
& A/ }( y" W- q$ j& o
#ifdef MFG_MODE_AUTO
. ], A/ w; [( M/ @: T6 I
else if( in_context->flashContentInRam.micoSystemConfig.configured ==mfgConfigured ){

" ?0 E+ o2 q  x: z% \7 I% l
   system_log( "Enter MFG mode automatically" );

/ x7 d( d/ x+ S) w- q8 O  c
   mico_mfg_test( in_context );
5 X* O0 @- U6 K% X
   mico_thread_sleep( MICO_NEVER_TIMEOUT );
+ k+ x3 ?  d0 V9 h) J3 ?4 ~4 f+ |7 R/ r
}

  m# D# H$ V2 u" D# B# o7 t6 R
#endif
4 B. M/ r5 N8 b& V) U0 J
else{

, l* y4 c9 L! V% T8 I3 P
   system_log("Available configuration. Starting Wi-Ficonnection...");

/ c, }' {5 H. t  s3 t( G8 p. t
   system_connect_wifi_fast( in_context );/*建立WIFI连接*/
, f  r, V* O! G' G. v
}
$ a: Y1 o) r! T* B, {2 J2 ~
#endif

9 o- f9 S* r( n+ O6 R

2 x. Y% F8 J. A- X9 o
/*Local configuration server*/

) M% g/ ?8 s) C* w1 s# y
#ifdef MICO_CONFIG_SERVER_ENABLE
9 M0 H; R/ Q* A0 G( Z6 v0 M: }
config_server_start( in_context );/*创建本地配置服务器*/
6 J2 o4 {' ?/ |" G
#endif

1 b% l. I' f( b; c: [( _) }& x
* D) v) \& ]9 i9 U& v
require_noerr_action( err, exit, system_log("Closing main threadwith err num: %d.", err) );

' E! ]" n) a4 y3 a" C
exit:

4 u+ F: y  L; w; c/ ?6 t. J

3 p! I2 \0 `( j  ^/ o/ ?- z
return err;
}
' H) q+ j* h+ S1 {2 Z

0个回复

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

本版积分规则


关闭

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

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

GMT+8, 2025-12-4 11:36 , Processed in 0.473257 second(s), Total 37, Slave 27 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

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