|
|
使用下面的例子代码,不能使SIMO和CS为低电平:" e' t; a3 b; k7 e
void PSCInit(void)- Y" V7 G; a! X, o
{& _( V# N( u4 T( W
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);" x: P* x' o6 O
}
2 [$ E H6 X& q
& j% \, B+ Z7 O1 }, ]. wvoid GPIOBankPinMuxSet(void)
8 h# }+ S7 ]) L* y2 W" l{
# O* K4 j4 E6 i3 P! P // DRDY ------------ GPIO6[14] -- 111& A- a }( Z: |& Y5 f3 r0 b
// SPI1_CLK ------------ GPIO2[13] -- 46
. z0 Z8 @2 F* @$ m- ^* U // SPI1_SOMI------------ GPIO2[11] -- 44
/ F2 D6 o5 l @' [ // SPI1_SIMO------------ GPIO2[10] -- 43& T, ^. S E8 `
// SPI1_CS2 ------------ GPIO1[0] -- 171 p/ Z, B4 A. Q8 I$ j0 [
// SPI1_CS3 ------------ GPIO1[1] -- 18) t. r' |3 T9 x# |3 J* s" `6 u3 P
" B6 b( J2 a$ h U HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
2 J( f2 c' ]: V, ? N8 y4 F6 c7 @ HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
, p& ?, j' U4 x' P9 M HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);5 K6 ]) \7 H- z8 l Y1 x; K; h/ n
6 k0 b' I- ^: R# ?/ Q //DRDY
3 P3 T7 M6 N. r GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
4 Q& ^7 D( J, N7 d- ^ // CS2,CS3
& ?* G: I G) V3 v, M, W- h GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
8 M, P% y! r4 u1 Q5 x& b- ^" e GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS39 h! C" i! T: {4 n$ d. J
//SIMO) \; i# |/ J9 z4 x6 n, F4 W
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
5 N" E8 O+ ^: C f: _ //SOMI
7 u. V0 p7 `" g3 D1 }' i GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI( o0 t+ A7 [! g) ~
//CLK
" t% i9 B0 r/ g2 |! S& C2 k GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
& r" h0 |& S% ?- f6 e5 Y
) d" N2 \; d1 Q: K // LDAC* t+ ]9 j: t3 g! o1 O2 }) N( T
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK7 I; u( t& w; W7 |0 v+ d" [
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
/ u/ h5 E* I6 P9 s: C; ~8 v GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
1 G v; J9 t1 `8 F7 A! } C+ w7 w$ e GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
) V3 [2 G7 R7 a @, b: D% A7 n& u GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY) D7 S( q# {+ }
}5 ~+ h. ~2 V" z
4 q3 M5 t% F( Y- Y# I. [$ \
int main(void); j, U/ `: _/ H
{ o4 n0 }9 s5 a
// 外设使能
7 T) h+ G1 x* G8 K4 G; b PSCInit();3 D8 n# r. h5 z2 k: W, B p+ N' K
* Q: \5 H' A. Y- J. B
) N8 p. T4 x! V: P# d5 S // 管脚复用配置
1 w _! \# ]) X' h GPIOBankPinMuxSet();# e: ]; @+ K& r: M
for(;;)
2 e2 r- B! t, @3 S0 Z; C {
% \* e4 q* g, I% O' |- ]0 d SET_SCLK();//时钟正常输出8 R# o I/ R3 ^& V
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
& ?1 G; R. X1 y5 D3 q+ l1 S GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3 ?% i" k3 u9 H4 D0 |
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
, c8 k! u$ o7 p4 T5 V9 w% R) L! l3 U, l: C
delay(20);
- j8 b8 s% ^( X9 M1 ~' V# b j1 [ CLR_SCLK();
4 b G0 q. ?! e; p GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
& Y+ o" X: B; z' x& {; g+ g0 N- d GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS36 F9 Q5 Z n7 m+ w3 {; C
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
6 F& H6 Z& k: M$ h4 e) T- {: x5 K delay(20);
) C- P. R- V! M3 g3 l' m% \, R }, r0 {' ?/ k% j3 M# ^: `
}
1 G% {. k* c/ H6 S" f$ m. F |
|