|
|
使用下面的例子代码,不能使SIMO和CS为低电平:8 L& C- i( J* z7 N6 A
void PSCInit(void)0 Z# Y/ s1 W0 q' {
{& G/ L0 l: {5 {: i# U3 s! n N
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
( I8 w: ]/ f/ Z* X" B" h+ q- v}& D9 t+ \% z" ]; k _
a1 X3 M: v( M4 q
void GPIOBankPinMuxSet(void)# ]7 n( ~+ U; a2 N
{
" L7 i7 [4 R, p/ Y9 @" q1 X // DRDY ------------ GPIO6[14] -- 111+ d, c9 h5 Z/ g8 w( C6 B, e
// SPI1_CLK ------------ GPIO2[13] -- 46
4 ]. P' z8 p* r3 [" H // SPI1_SOMI------------ GPIO2[11] -- 44
4 _) }5 x$ M- z3 J // SPI1_SIMO------------ GPIO2[10] -- 43
- F2 a. ^2 I: [" K4 e4 E // SPI1_CS2 ------------ GPIO1[0] -- 17( a6 O! a0 _# D& l1 p
// SPI1_CS3 ------------ GPIO1[1] -- 185 o: |" q/ `9 S6 Q/ X9 s; F7 D
- c* ]8 h! w& h/ P* r
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);' Z, o9 ~& j) A8 X" c8 K: B
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);* Q5 `3 H6 f2 O5 ?
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);; w" L$ \ P9 W8 z! S0 l6 m
! k% Q1 S4 U" t) b' T //DRDY
. J- {. P( T3 A4 \0 Z GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY) W3 j6 N2 y# ?, y( R
// CS2,CS3
/ p$ j* z6 ` h2 c GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2, ?4 S' B2 r0 E
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS33 t) F5 f! c) @
//SIMO6 i, q8 U( k5 V- |. \
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
7 d4 d! B4 M2 S* D //SOMI5 b4 y B X+ c1 W( ~2 D7 u
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI! c% |3 C/ {; v& Q% B. |3 x
//CLK7 x9 h- q- `% r
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
6 C5 Y( ^8 S" P) a& e) ` p
- w) S- D1 P3 ?3 W; F3 } // LDAC8 R: F# G9 a7 n& _
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
8 |7 V/ @. b. G9 r# z# V GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
3 a4 I" @2 ^3 {4 q/ b) T GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
7 Z* s4 o( V+ z$ c- E2 _ GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
1 |" W- B3 {* V; \ GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
) S8 ]# z/ R% h, ^# V" ]}
& p9 ^; \, M3 J7 a9 A; u3 s2 j' t+ R, l6 N! T2 Q
int main(void)# }) r( U' s8 r- \
{: x4 f' v5 u& y& r; }
// 外设使能% ?1 ^ n1 \$ m* v9 A/ c4 L
PSCInit();
7 J p2 d5 A0 ~$ [) V8 l
4 S9 S) e5 f0 r# v& ^7 K0 t
$ m! v" E9 S1 D& Q/ B9 \ // 管脚复用配置( h/ k) |4 s$ n# o- U* C
GPIOBankPinMuxSet();$ j; V+ F; H: ?4 B8 ]$ E# S
for(;;)- @* B- ]2 P, a4 m2 c
{
- N: e. r# _# Q: F SET_SCLK();//时钟正常输出8 c+ I1 b i( G8 a; _( a0 Q! d/ c
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
, `+ c1 l( p. B: u GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3
4 [, Z: l. x0 k GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
/ K. ^4 k, ^: L
4 h) j& `2 X8 Z: ~7 [" g- c delay(20);
0 h6 z0 G3 P, f# h# y0 B CLR_SCLK();' c5 W- F9 b& K/ X; S( Q4 J
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3) x) ~9 z9 J2 P' I z) D* |9 d
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS37 y y) d# m( H& P E
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN V+ V0 E7 B$ n! b+ V j% }7 ~8 r/ ~
delay(20);
: m* ^3 [; A; D: }3 s$ k }
! Q' o% R/ [4 ^! k$ e}
7 m4 q9 [: J4 e- K$ i |
|