|
使用下面的例子代码,不能使SIMO和CS为低电平:/ a) s5 R1 O; o! q% A
void PSCInit(void)0 y4 w+ A1 J- \- z( |9 }" Q, P
{ _& x# N! D* m! q
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);2 a2 C) T7 b; D0 x9 _: ~# L
}& Q$ M$ J' u3 x5 P/ @
& w% L" N! ]4 V% s3 u0 h0 S5 ivoid GPIOBankPinMuxSet(void)
: r8 t4 I' y* H! I- u) [7 Z/ j{
, E- s; K' z- ~+ c) T5 y4 B // DRDY ------------ GPIO6[14] -- 111( T! N& E9 q H" f
// SPI1_CLK ------------ GPIO2[13] -- 466 C4 U( P* g& I* i4 |# y+ t
// SPI1_SOMI------------ GPIO2[11] -- 445 r U8 L/ Y+ S" P: g' L( A
// SPI1_SIMO------------ GPIO2[10] -- 43/ M" k2 N$ K3 r
// SPI1_CS2 ------------ GPIO1[0] -- 17
) X8 Y' O; Y2 X4 W // SPI1_CS3 ------------ GPIO1[1] -- 18
) F% x! H: H# `. ?' M4 T, E; n$ A- l# m7 H2 R# L& m+ @- |
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);% P+ O. i1 \7 N
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
+ C% p' b/ H, ~+ q: [! l0 N" T0 C, F HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);4 M# t9 ~4 ]& ~% [8 I" Q
! \! `5 [! n% s5 v- _0 ^" O //DRDY" \8 p4 o* I$ X W
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY% N z$ X* F! F& W5 m
// CS2,CS3/ ~; I) I/ S! r' D9 y
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
: z2 D8 \0 G- S! j* M# g GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3' z g) V4 ]! q) n# q$ D p3 a6 J- s
//SIMO$ E& b1 Z$ |' V, O. Q8 I: N
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO3 j a" ]* @; e4 h5 \" g6 E6 [. U
//SOMI
& i" k. y' `0 i! B& i GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
# X1 ]. B+ L1 m l //CLK
& B1 R2 j1 a* y/ l GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK- X* D0 |6 Y9 C& @ h) ]! q
0 W. z" d" N& ~- Z5 M. W
// LDAC9 O8 g' S5 Y0 D, M, k$ r( y
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK& v1 m% U/ r5 R! A/ N K% d
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN1 y/ [4 u$ y0 c( J! D2 u, m3 d
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS24 ]2 g$ {9 e) T0 j) ~' v' m; w
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
! \# B2 J/ ~+ P9 z9 B' u GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY" d! j! R: ^, n7 ~
}# u" c" O2 N$ P) h5 {6 n
4 ^; {1 b) J; E1 j, V" A
int main(void)4 \+ P, }% A P/ N5 ^: @9 ]
{% B$ k. L' x9 E+ [: S
// 外设使能- n( r7 Y# u& F( Y8 y
PSCInit();$ d: h4 y7 F0 _9 R
, `+ m( G) y/ Z# O0 \
/ G- z, y* {8 ^; O2 b9 B* y
// 管脚复用配置6 t$ N3 }, q, D. j+ s
GPIOBankPinMuxSet();8 }1 k/ [1 d7 {. Z( L
for(;;)1 j7 m: ], ^$ g' a
{
( K: o' H" n( s6 s! f! S/ X2 T SET_SCLK();//时钟正常输出
2 e5 |% N$ x- s# \$ B# K GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
& X) I- x/ P+ @! I GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3
" R1 }& |: o& i/ z4 f( X GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
! F/ ^+ F5 f6 }8 ~ X/ ? u' U# Z" v. m& Z
delay(20);
' i. Q3 D+ Z- C }, p! {$ j7 P i CLR_SCLK();' n5 z, k- _# }7 _
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3% k/ w0 V% F! k' Q6 J9 [/ F
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
% _2 [' ]5 f% |7 J* S& u GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN0 f; u1 _. m# }' d2 z& V' b
delay(20);! d" W; @; a' C
}, s- I3 X+ g% c4 d, ]& t% M
}
+ ^- h+ _# B& e$ E0 F( d% N: L" V1 D |
|