| 
 | 
 
使用下面的例子代码,不能使SIMO和CS为低电平: 
' K' @: |6 \, J) p( lvoid PSCInit(void) 
1 G8 U  E% A( |9 @{ 
* F! i% s$ Z" P9 o        PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE); 
& w( t& [1 u$ v5 p! W}4 E' a& r/ T, I) H0 v  _4 A 
- o& Z" V; i$ C, l5 Z) }- L 
void GPIOBankPinMuxSet(void)% c) V% C! {5 r) R 
{ 
; v4 T0 L) a2 i8 V        // DRDY     ------------ GPIO6[14] -- 111 
( w1 d- N) D# k$ w5 d7 ~        // SPI1_CLK ------------ GPIO2[13] -- 46 
& w6 c, s: s: l1 ?; I- b' _        // SPI1_SOMI------------ GPIO2[11] -- 44  Q& r$ y7 P+ X! s! Y 
        // SPI1_SIMO------------ GPIO2[10] -- 43 
( ?) k+ g+ C3 f( `+ `        // SPI1_CS2 ------------ GPIO1[0]  -- 17 
* J5 F8 d: }9 x5 E! v        // SPI1_CS3 ------------ GPIO1[1]  -- 18: i, o1 T) j3 B+ J 
# d; g- ?) d% X) A/ j8 S; E 
        HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000); 
5 H: J* v- a9 W! M        HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800); 
4 ]) @0 S4 z8 k- c( h        HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);2 H6 e2 ?  y/ a4 W 
# K" b) b2 W. k! O0 Z 
        //DRDY8 J7 d# `' G3 E7 g/ J 
        GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT);  // GPIO6[7] DRDY 
( k; A6 L1 F: V/ A        // CS2,CS3" B: l2 d6 q- K% o0 y8 ~  S. | 
        GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT);   // GPIO1[0] CS2! `+ O' t6 T, \! K6 |) q1 X2 ^, D 
        GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT);        // GPIO1[1]        CS33 q3 Z6 ^4 Y3 j2 i 
        //SIMO 
3 N: G9 Q0 j1 i6 o# s( a        GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT);   // GPIO2[10] SIMO 
# [& I+ N* c0 u! }3 |% [+ g        //SOMI 
/ O$ {/ ?& @* D        GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT);    // GPIO2[11] DOMI 
& R9 v3 C5 H$ h( N7 i1 a        //CLK  ], ]) |, P. k" v& C" [! ~2 G: V 
        GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT);   // GPIO2[13] CLK, o* H' r% n) N* I8 x 
4 @' w1 ~0 p4 {& w! C1 @( | 
        // LDAC* A& l6 c. i1 C' u7 G% L 
        GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW);  // CLK4 H8 v, g3 |1 F8 F4 m. G$ j 
        GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN  r8 _# ^" R& [+ a6 V 
        GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS26 u: T# t8 ]3 o; g# V) r' N 
        GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3 
. `+ s" ^6 M1 y* j& q, F        GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY0 a6 {- u5 @2 j; H& n$ G5 f 
}" h. a/ E9 s/ X# r; m) m 
# H% P( b; E+ @9 X$ V+ u  A& R( [ 
int main(void) 
  P8 @. a% N' R9 ]{/ L( j3 u* ?3 R, P* r; U. N2 F" \ 
        // 外设使能 
- m; |, a; b: F3 _& X4 P# k) [) h        PSCInit(); 
, l4 w, w; U4 [# \- N 
  N: s; u* W. l. ?  O   - G8 W, P4 N5 y, ~0 n: t* r% L 
    // 管脚复用配置9 e9 v8 ~9 p( } 
    GPIOBankPinMuxSet();, r+ r$ J! N3 r( h2 e, L 
    for(;;) 
$ j% q0 i% L, ]( b/ D: L        { 
8 N0 N# _2 f4 k9 V! A4 z" Z                SET_SCLK();//时钟正常输出0 s4 {* u7 a2 F 
                GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2 
; c! B; y. U  R% _0 R0 Z    GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3! v3 g& H' u9 z0 |7 B- C8 P 
    GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN 
9 k, M/ d1 q3 ~* l8 t1 o+ [/ y* S: D/ I; W 
    delay(20);" n' v# F* ?3 ?5 m 
                CLR_SCLK(); 
, Z8 N: h" P4 M. j3 V  q                GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3; t# w6 @1 f" _* Q! _ 
                GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3 
9 ^7 c+ N4 s- J; ?1 K$ h, a                GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN 
! e) k2 E. l% |2 a                delay(20);' @( R) B8 u8 _8 w5 v 
        }, X7 V9 c  T; @+ O. `' p! I 
} 
" x  t. G; c" R2 G& W2 [ |   
 
 
 
 |