|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
0 I F, i1 K: J5 l" z' vvoid PSCInit(void)5 e% H- W) ]5 z6 }! n
{0 X& i& d( r6 B. E( Q- e
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);1 j( x, G8 |. J5 ?- Q4 @" p* o
}
: i1 P$ ^& L I. E; E _, N# j! l6 ?9 s. N o- l% R2 S
void GPIOBankPinMuxSet(void)
- z- C( T) G, X& O- J: v{+ M, g' o5 y) a l
// DRDY ------------ GPIO6[14] -- 1117 u- I; o3 I9 H, b( z" {! _
// SPI1_CLK ------------ GPIO2[13] -- 46
# [8 {# _7 ]5 I // SPI1_SOMI------------ GPIO2[11] -- 44- N: I; Q- F- G" s
// SPI1_SIMO------------ GPIO2[10] -- 43
/ \5 d) A& `; R; k // SPI1_CS2 ------------ GPIO1[0] -- 172 A$ }; ]: `7 L2 i9 K
// SPI1_CS3 ------------ GPIO1[1] -- 18- G0 k; f$ P( @: U
9 x; A! ~- f( R( `) V2 g HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);- _# p0 J6 c* y+ Q4 }+ J; u
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
8 y# H- c: C. d6 p: U' N3 c HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);7 l$ q$ ` G+ r( A' S5 |6 i
) |6 p. V9 |& S; g, }2 u' b //DRDY1 j* w; D/ z' B! R+ m o. V
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY9 \3 ~" s; g" \& C6 P
// CS2,CS3/ [- @) `- O! G: H- g2 f
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
B X: c; V+ [- g3 H: x GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
, \* k% e0 E4 S- w8 {* [ //SIMO1 S" Y9 r5 |! N2 [" A1 P6 _- X% R$ O
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO4 I% Z+ O* c! W+ H- }
//SOMI
- { R$ F5 F& _) `: A0 A& P' c7 y7 K GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
! t _# {7 W2 F# u5 ~* }7 g) S1 ? //CLK& k0 G8 w9 o4 h
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
% Q$ `+ F! `+ ?% S/ h0 ?3 b3 C# {$ {3 V0 K+ y- h. ?
// LDAC5 M; d% d5 I$ j& r9 {3 x% {
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
+ P$ |1 W# z) Q GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN- \2 N# b/ N4 ?# m) V H+ b
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
3 r6 h- C( N. |; f' I6 E: Z GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
- _9 l5 N( A. E P$ t4 [ GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY y5 T& X9 Z J6 H- I6 A. v7 w+ h
}6 p L) `+ q% T4 _% L" u1 {) R% w
" i: S+ x) x6 m, F0 f9 Jint main(void)/ t% }9 r& \" b8 g F7 C
{
' N: U8 a3 @/ V* N // 外设使能3 q/ \, B% u4 W5 I) b
PSCInit();, Q' X* q, _( B5 Q) P& ~
. W0 i6 a+ P! h; X* ?
0 Q/ m8 D3 m) P; i9 b$ y/ f7 y* |' I // 管脚复用配置/ r2 }, w4 y# B6 l
GPIOBankPinMuxSet();2 E9 W h: \& t/ H7 H
for(;;)
0 l1 |! d% f* h& f: O" t- g K1 S {5 }9 m I* F; Y2 R v
SET_SCLK();//时钟正常输出5 ^( y7 t% e! A# R0 \
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
1 V) |# X8 Q7 `" y$ z GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3$ @: D, O) H7 F% Z6 j" T' d
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN* H" m: C2 e( z
( U u( Z- h- T( \7 j3 h2 @7 _1 ^% p
delay(20);6 P5 }8 O( F" o- M8 ]. r/ {
CLR_SCLK();
! r% m; e/ \) }- U9 p' M' h GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
) q4 d# Y6 r: S GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3) p3 [: B& q, y9 d/ X: T
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN: v$ ^2 |- V# [6 u! `+ ?4 _
delay(20);
) w3 l- [9 @. S1 e! Z6 r }
5 I) E- Q2 F* Y5 i1 r}4 b- z6 \' o$ ?! P
|
|