|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
& B- o3 ?" m# G3 X% W3 J- rvoid PSCInit(void)
8 i# `5 r4 W+ ?{. Y: r7 g) _* \3 U* t1 Y A# X
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);* A# }( W" y, X/ F; K* ?
}
0 @: e1 Q0 m ?" G, f
7 h2 \ V3 s3 {( j7 U3 F, Cvoid GPIOBankPinMuxSet(void)' @7 _& U# M- _( W z5 h
{
" D% i0 I2 X6 B+ C- a& e // DRDY ------------ GPIO6[14] -- 111( p7 \0 |3 M( c" K$ v/ o q7 @7 G N
// SPI1_CLK ------------ GPIO2[13] -- 46
; p0 A4 M3 j/ ]: H+ F0 A C // SPI1_SOMI------------ GPIO2[11] -- 440 C0 k! z' n O# j% D
// SPI1_SIMO------------ GPIO2[10] -- 43
! a3 _, l, P% u% E8 M- w // SPI1_CS2 ------------ GPIO1[0] -- 17
: Y% E1 x8 d2 |0 a" r // SPI1_CS3 ------------ GPIO1[1] -- 18
6 s5 Z1 X! o }: U% H8 n& v" Q; J6 U Y! g, M
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
4 k k* e8 Q) J6 a3 q5 o HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
* |3 V, g0 a' m HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);/ {: {/ O! e# A7 G) A# a- X
- ~( T0 c( Y0 b, ]+ s //DRDY
) x. B" x; o0 |" I( m1 m GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY7 Z" b( v6 u/ x+ b+ c5 t: R; X' Y
// CS2,CS3
9 k5 {7 R' x8 H( z" u! J GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS21 q1 K0 r2 w/ `* [$ t# ?
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
' t/ f4 z+ ? i4 C# d7 f+ [ //SIMO% n" l, w: |: {2 f+ u
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO! l: t% o' ]4 r0 H" T
//SOMI
6 s( |4 {3 B' D) o x" S) W' u/ l6 D GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI! h4 S2 s4 C! J9 V/ I
//CLK
$ C2 S& |/ e, e- U GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK6 t6 c3 o$ y# i/ j) F
" [9 b4 h6 a8 I' c7 C8 _1 D
// LDAC5 i, Y' d2 p8 H h y
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK) f, L, ?! d+ {8 W: k1 U- X' P* @; n: e
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
) L) o9 ?) R+ `6 h4 ?7 Q GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
$ {7 G- V% K" r& ~ GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
/ P: j/ j% M9 u( \; e/ I$ L4 ` GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
# V) T6 M. B$ z4 C0 O6 f7 d}2 R- Z' I) x7 K! H, x7 i, G8 w
2 I$ { R' u, B3 \/ @! Zint main(void)
" h0 s- X( D. S1 K. V6 O( s& j9 b{2 d# e: q' U- Y1 k* A
// 外设使能
8 c. |3 c9 B! |: f* i O PSCInit();9 I( r0 y3 Z5 u& G. o0 ^6 `- s
8 ]1 g5 S0 F, x% \/ I 8 u! v8 w6 f: o! J6 T
// 管脚复用配置9 Y' q4 |5 e) D! R
GPIOBankPinMuxSet();& h' |! k. y. {6 U1 h
for(;;)4 t) V8 l: g( e& Q+ L- V9 A* F3 N
{
% V$ M; E3 O3 f- d SET_SCLK();//时钟正常输出
) A% B* a5 o* T" v7 |' t GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2- o5 h1 u+ i9 Q
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS36 b- y8 J$ ?; U0 K
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN9 h( }5 ?* W3 q: T+ J! }
7 i! S/ G5 P7 t5 B0 G ?- Q4 I
delay(20);
& ^" G/ d! B8 F' ^& X CLR_SCLK();8 `9 K, [5 o# i+ C
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
7 s$ n: j4 X& [: x GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
+ f4 T0 e8 N% O9 n: g0 H: N GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
+ S- [ w n; \( ~) V' R! ?1 J delay(20);
5 V; i) ^7 X/ w/ \' J }$ B! F& ]; h! c" }" i! D
}
( h- X8 v- e5 _" N5 J0 o- j+ x |
|