|
|
使用下面的例子代码,不能使SIMO和CS为低电平:' j; @1 a8 b- T' l0 w5 Y, x7 t. ?; W
void PSCInit(void)$ }* q1 K$ h" k9 n4 T
{3 n: b. n, P* ^1 D5 q
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);7 h- h; ]3 U0 ]) u. F; S8 m9 A9 A
}
v0 t1 g, `2 g8 @ c" U
9 F2 S# H& L svoid GPIOBankPinMuxSet(void)
9 D, J2 Q/ q& [6 ?' M; ^{
! H. u9 r7 g( d# H // DRDY ------------ GPIO6[14] -- 111
/ Q: E* K) N+ d7 y3 X! K // SPI1_CLK ------------ GPIO2[13] -- 46
& G$ [. g' x# Z2 ~7 @! L; F- e% T f // SPI1_SOMI------------ GPIO2[11] -- 44
5 O: y8 h8 t; H* x. X // SPI1_SIMO------------ GPIO2[10] -- 43
0 m- w' v9 J1 C) ~ // SPI1_CS2 ------------ GPIO1[0] -- 17
4 H8 |2 f+ `/ W( g9 n9 O- Y) Y // SPI1_CS3 ------------ GPIO1[1] -- 18. A( y. b2 B& G$ S) ^0 a9 e
: D" e# R% }% k6 C HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
& ? `/ K R% R1 M: a! v HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
6 k# k4 b$ _- _( N; \4 W HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);9 s7 g+ v8 ]5 G7 \# x" u" j- Z
$ t5 @0 r1 q$ ^7 k
//DRDY
9 n1 F1 l; X$ O: [ GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
D- j+ Z) U. C3 U/ @ // CS2,CS3
3 P+ J$ R/ M0 G GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS28 e- \( i4 F' h- ?$ D( |
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3% q" m, g0 |* E7 W, S$ n
//SIMO2 W! d2 U, a, D: x% s( W
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO" H2 G+ p0 _% w% Q X0 B
//SOMI. v. P! |1 Q* w4 N
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
6 I+ ^; S B" w; m: j- F+ i //CLK1 B( n6 q1 ~( u, j7 M+ [
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK) | c& A. V3 R- Z& b0 P
1 h$ z! V, _3 c# Z V T6 @
// LDAC& T6 a) ^* g4 G4 L6 `- {
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
6 b1 H0 [. b8 ?& |2 q GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
' ~! f7 ?! {# r$ `' a! X K GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
9 ~8 }* I1 X$ D2 Q2 M9 s' r9 K GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
8 @# a: o( h M# ^9 e GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
5 f% ^) ]5 F& a} A5 U) ^7 ~$ {% B
9 @. f) o5 Y5 w( t j+ v- y
int main(void)5 q. D4 y% q" R$ [5 Y1 E; E
{
9 ]# f( Q3 \" q2 {7 U // 外设使能" J& ~2 s% N6 a
PSCInit();
; Z2 t# i: n8 C) i& q* g8 l, o9 h3 W1 M4 ~& `. P2 @
0 K* n5 Q' @5 T1 V8 L, F // 管脚复用配置 F* }. l! d8 \* }
GPIOBankPinMuxSet();
2 J' H) E" G/ v, \0 I0 g0 y( }4 P6 p for(;;) A& Q- G. X: T+ q/ b
{" f# T# U5 Z g7 Y6 S
SET_SCLK();//时钟正常输出* Z8 r/ l( R) y! h' b- ?8 H
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS25 Z; L; `- b% B8 m* L
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS38 L, f. }9 X w6 B" t* r
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN; E, t+ S+ l) S& b: M
' N) H8 k- f1 i delay(20);
8 M/ u3 [# B4 _+ t7 m; l" g CLR_SCLK();
( Q/ u# W8 J( U0 z/ d/ @ GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
% j. @: @" ~/ i+ { o0 q3 P GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
) F# `3 k, ]/ Y) z GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN9 m2 S; `# V" F5 l
delay(20);
' [/ s9 R3 Z% ]- u: l9 |9 { }3 h F5 n g8 \+ E' N9 d- p2 A
}& l: t( ]+ I' M
|
|