|
|
使用下面的例子代码,不能使SIMO和CS为低电平:, i% N/ _1 h& W& J) ~
void PSCInit(void)
+ x e( e( J: X6 h+ O2 @% ?0 L) K5 i{" Z3 T' X: n6 w. @+ g
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);- m) [; j3 a* m: H% h$ c% V
}
7 b6 \3 N! c- t
2 H9 o5 ?. t3 A- Vvoid GPIOBankPinMuxSet(void)* g& m8 P$ y4 V' M$ B2 h% e
{
4 z0 L( _6 j% q$ L9 g4 D% y // DRDY ------------ GPIO6[14] -- 111 L: t7 E3 A2 `! l
// SPI1_CLK ------------ GPIO2[13] -- 46, K% ]# N: M. I# D9 @# t; R5 x
// SPI1_SOMI------------ GPIO2[11] -- 44
8 B3 i, w, x) q* Y5 o) j- B // SPI1_SIMO------------ GPIO2[10] -- 43
/ w4 E0 k! b/ O) R$ X1 k3 C- i // SPI1_CS2 ------------ GPIO1[0] -- 17
6 P3 |; X3 E% H/ F6 m7 V // SPI1_CS3 ------------ GPIO1[1] -- 18
# @5 Z; g: A+ P$ A8 K+ R% C/ |7 I5 f! m! F% D( N6 ?1 e$ ~$ a
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
5 o$ e4 w' d( c/ r! H( @+ U+ S HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);9 Q% X. M1 V7 ^4 D) X3 m9 V
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
0 h7 w" g, i' o' @% K( Q6 y% `
9 X! I. e) U* e( V# K- J; m //DRDY8 l u4 A2 t# B) T7 X
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY- D: A. |4 o, {8 g# j+ h( m
// CS2,CS30 \* @: l% g2 D/ V
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2! v5 N; M: u$ O2 c5 N" ]: {
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
`6 C) E s) ] W9 \ //SIMO$ ]& x( z' [- u: s4 K
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
7 F; L) j$ R# w" i; ` //SOMI
, n$ u* D+ M, Y% J GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI3 G. H7 o5 q; n1 u* Z! ~
//CLK! q: ?6 E( p5 Z7 k2 D! q5 T( _
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK3 u) I3 x: P9 b0 D9 B! J' y
9 ~( J4 _7 P* n! T& r- r // LDAC# q/ C# @: `) d6 `# |6 l
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
: z1 j) F9 R" B, ?7 u GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
; u* X9 o c! A; t+ w" i GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
/ f. Y+ N3 d5 ?) J1 g8 ^+ C8 [' I GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS36 R' G4 Y# w3 o7 T
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
1 J9 a$ P, K3 r I! e+ _}+ m3 m; C. C7 l$ S2 a
8 H7 _) m; V- L% P1 rint main(void)3 ]" k7 a( ~* s
{! q4 _1 k" ^. b7 l$ M5 Y
// 外设使能# `. Y8 N# Y: o6 D! z1 o' \
PSCInit();
0 s5 \; l ^; Y# m8 `9 x. @6 B; ]5 N; |7 h* M
, F# q+ P2 O% d- m4 O5 _1 z; Q! ]
// 管脚复用配置
) _+ w0 {$ J+ @) x+ C, l$ q GPIOBankPinMuxSet();* l: i% r ^0 g) k4 \
for(;;)
& k+ l: n, a0 P {
7 q! G/ N) n4 r$ \# |7 S# l SET_SCLK();//时钟正常输出# Y( s8 t1 G8 ~! n$ P+ ?
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
4 v9 S! W: q ~& q: t GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3
3 w& c' ^7 h4 I# q/ D GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN$ | F& L( N7 C B7 M) h
. ]* A) H0 T; L7 V i* ^' f4 } delay(20);
9 m. S, r. \. w5 h1 | CLR_SCLK();- f' K$ O0 A: n2 I
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS30 e5 c3 U7 Q/ t
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3; w; |3 p" Y9 u' q8 X. @% e
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN2 u- J. e/ v; R
delay(20);0 z. `( c8 Y1 g* a* Q0 H$ e6 K
}
$ \ P4 w( z4 r- f) K. S}7 b) A* L/ U6 F' p* N
|
|