|
|
使用下面的例子代码,不能使SIMO和CS为低电平:) l0 ?3 y. Z, s$ J6 N
void PSCInit(void)- @0 }9 c# {7 g# [1 A4 Z0 E' ]
{
: h# U; x$ |7 H. v4 c PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
5 r! o; r, J# r! h, T7 ^: c}: X! m" K- l' c( l/ c1 `5 t, y
- O. ~( I0 p% A5 y; A3 mvoid GPIOBankPinMuxSet(void)0 i3 l1 v0 j6 v
{$ ]! w5 p: i S9 k. w
// DRDY ------------ GPIO6[14] -- 111$ r1 |. ]- c1 X# q
// SPI1_CLK ------------ GPIO2[13] -- 46: C# W" r, W3 Y$ x) r3 q# I3 _0 a' N# l$ H
// SPI1_SOMI------------ GPIO2[11] -- 44+ j' S4 b9 r2 f- u
// SPI1_SIMO------------ GPIO2[10] -- 43& Y; ~& f C# ^" y
// SPI1_CS2 ------------ GPIO1[0] -- 17
4 J( D& @. |$ P4 \9 [; g // SPI1_CS3 ------------ GPIO1[1] -- 18$ t( Z% u$ S, h! g- T! N% J& v
& n3 ~3 }, g4 ~: m% k HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
6 a- Z' [# l) f) f9 ~: X HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
) n2 R* A' n% [7 C' Y HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080); J4 L# j6 e$ [! x+ H" N( u/ D* p1 Z
* Q! l8 N: A* l* ?. @& o5 q
//DRDY
' |! g: I; \$ Y7 v( | GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY* H/ u1 h: k5 V7 x" b
// CS2,CS3
4 \/ K0 i- S+ R; f! x" `/ a GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2! l( U# b2 o! F; {" E
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3) Y! {( \% v c/ X O3 M: t( A
//SIMO
1 ~1 V9 ]5 s ^ GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
- u9 G) o4 A- e$ C //SOMI
- R5 G$ L7 H5 i5 l; v8 A3 _ GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
" C. G# x4 e/ ?+ h: u //CLK
0 f% q5 s, G, ^" p9 b GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
( B( s: E* P) }: b2 ~/ o( i- ]
5 C' i- _. o( k1 f // LDAC3 p5 a1 K1 o" V+ x- t
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
# v% I; o8 R: \; q* `& D' |0 O# H$ e GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN$ ?- E7 O+ ` n8 l0 I2 F
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
- J! s0 }% @" S3 E( a2 g GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
7 @9 L4 x6 R1 x& L9 w GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY! V' p, a( g: O& Z
}
5 x5 Y! |5 G) c& f# ^- {$ F# D$ _7 x$ Q( u
int main(void)
% h( a" Z# |" m; e{$ u- _' G1 f- e+ a4 e
// 外设使能# k& H9 F w( F6 C* c9 t
PSCInit();5 d2 \% n9 `# T! z
; Q- [' r6 J' D0 D# @: E! x
* Q+ }1 f( W$ x7 n) T // 管脚复用配置, S+ y, s; z+ f
GPIOBankPinMuxSet();
/ K: N) v/ F) _9 e3 j7 M3 k h for(;;)! ^; L) Y( Q \- |/ z3 ^ t5 V
{$ n0 z/ r' `- ~, E: @/ j' C( D, d
SET_SCLK();//时钟正常输出
7 t: b b2 Q& }8 w GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS24 u: J0 N; w6 A/ D* o
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3$ @, M/ H h8 p( E( t
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN& g+ h2 e* n U6 A& p6 U- o! t' T& V
8 v) Z& }. i0 m" _ delay(20);
" l! ^- [- b& W) B f0 N ?% i CLR_SCLK();
- G$ e9 h4 Z* \6 m GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS39 i/ e: K; [2 H# g1 X3 @- R
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
( _& q7 c) d: C* W) c# f GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN3 N4 l/ \% B( W" Q# f& `
delay(20);4 i! a3 k6 \9 a& K6 N: W* `3 r- U, Z
}6 H2 i) K7 q0 O9 J$ [; f, M9 d
}
! u0 p, `. m- h4 t+ t2 A$ W |
|