|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
: W7 [8 s2 e/ `8 |7 ]void PSCInit(void): @% ^8 O0 G3 m/ F2 ]+ ?
{ C0 j( k7 e& i: H/ \
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);9 }' W: `6 }8 G" o
}
- z1 X* v5 z6 Q# n, r4 v, w& u
" |" Q) ^/ P. r! Yvoid GPIOBankPinMuxSet(void)1 s. L! Q! ?- k' k- |6 m- N0 d
{
& G5 E& ]/ B- p ]% @: P8 O // DRDY ------------ GPIO6[14] -- 111( x; P: E5 |/ | x0 G7 f. b
// SPI1_CLK ------------ GPIO2[13] -- 46
$ d# {7 { k8 O // SPI1_SOMI------------ GPIO2[11] -- 44' b) `; ~9 j- Q8 C- P8 H" R$ t
// SPI1_SIMO------------ GPIO2[10] -- 43
. f* _' ^6 |0 S( \6 p6 A& l" V // SPI1_CS2 ------------ GPIO1[0] -- 17
- S7 g7 j5 G2 E& S // SPI1_CS3 ------------ GPIO1[1] -- 18
. G3 F" l e& A1 u4 P. R
1 i, c. q9 ?: v$ m. e' d HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);- [# B- [0 c& u) V R9 q5 c
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
$ n9 x( K* X7 ?: U* ]9 j4 V HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
' d5 W) D* e! T1 t2 r; p: g9 V0 c- p" B7 }# A
//DRDY0 R( a2 {8 w5 F7 N; J1 l& Q
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
* Q D. |* f9 |- h/ N // CS2,CS31 M8 y0 c; e+ Y3 z$ z
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
' u. x3 `) R$ K1 x GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
8 V( ~# k/ J( c$ Y8 h! Q //SIMO \. ?3 g) E7 Z, b5 [8 C
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
. @ S% s3 P: U+ C0 i //SOMI
$ Z3 Y2 K$ H/ u6 o, S" v GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
6 j; ~! q) k: R6 ]2 R //CLK
8 c3 H0 r: D0 R0 z9 @4 R, I GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
6 D6 v7 s. l5 T: x4 ]; A8 [, N2 ?( M$ r7 B* z5 X9 k7 T
// LDAC0 k# c4 r. K7 C. o( c8 z
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK6 z" e- {. g( o& K+ u+ h& t0 g6 J
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN3 y6 X( W1 J8 X9 Q' h% }
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2- V0 I5 |! p! \
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
8 W: L, ` C, Z3 l& J GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
% _6 ~4 j4 w: E2 s}
; x$ W4 ^8 p# j* c. P! u
. {2 ^# j5 Y+ n: ]6 @- tint main(void)5 ~' x- T9 m! j( V: H$ t
{
& z9 J; m2 W$ p! W- v( ` // 外设使能1 O7 K& j: d7 ?& b* b: f5 I2 m
PSCInit();( x$ [# y/ _0 }
/ Z8 l2 e$ w- R8 K1 W8 E 5 `, d7 F: N) x% c) ]4 Q# ?
// 管脚复用配置
2 H8 d" @5 R; j q GPIOBankPinMuxSet();* k) c$ N9 c% s4 n6 w8 k' v( Z
for(;;)2 ?0 s+ Z0 J& z$ {. w
{' C% b3 \6 n! ], u7 ]2 [
SET_SCLK();//时钟正常输出
# C- E- t6 \% F5 X% m; K7 B: V GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2; Y7 n$ E4 v5 o3 ^) {( v
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS38 N+ K" k: P7 {# z
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN' J0 Z4 }" P; i$ F5 `, j8 g
0 j; w- F G5 e
delay(20);4 H" m6 X* a; i1 {, T F
CLR_SCLK();
6 m* g/ @8 }' U GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3: ~0 |# \9 P5 |5 @
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3( |2 h& R0 ~ P/ j
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN% p4 ]; w" K7 t) a9 _/ E
delay(20);
- | a% `; D, u0 _$ B }5 g* Z$ r- c" [
}% }0 P; M8 T# y9 k9 T
|
|