|
|
使用下面的例子代码,不能使SIMO和CS为低电平:3 c6 W9 Z6 Z6 l. R! H
void PSCInit(void)
* ~1 N( w, o1 W _{2 d( Y6 h" d$ Y: ]7 I" V
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
) Z) v. L& l2 s% b}. Q0 U; B' X$ H, G" J. Z4 @
: Q3 }: h8 O4 W! W2 R: ~; }* }
void GPIOBankPinMuxSet(void); X- a4 S0 T7 f! I7 m9 r2 Q; y" p8 ~
{
# G' W) D3 F5 J+ B // DRDY ------------ GPIO6[14] -- 111
4 K( U8 a, M1 q7 t$ o# o N% N- s // SPI1_CLK ------------ GPIO2[13] -- 46. d' W( o! X0 s2 t h) w
// SPI1_SOMI------------ GPIO2[11] -- 44
1 a+ _; w/ j4 t& D& h! w/ \% }: R // SPI1_SIMO------------ GPIO2[10] -- 43
, c7 h% O# L7 t // SPI1_CS2 ------------ GPIO1[0] -- 17
4 k. d$ g% u1 N. c1 ^6 z6 @ // SPI1_CS3 ------------ GPIO1[1] -- 18
) r+ Q5 s) R# a3 H5 B1 j) K" L( _. o( S R- O1 a8 C
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000); [; G! I8 ]. S3 ?
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
* V3 z# H0 a3 Y6 s HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);# Z9 K2 M1 K' S; T& ^3 J
* l2 M5 H8 T, g* ] //DRDY
* W. R, V: w3 F" L; L/ s- M GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
8 Y- n& `' U. |6 r // CS2,CS3
4 S: V1 a- G& x GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS22 j- m8 s; I' l; G3 d
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3( F' Z& z! l0 d+ k
//SIMO
* T5 t5 A6 n0 J2 ] GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO7 T4 Z; Q2 \& `, g- S/ J/ j' ?+ x" C
//SOMI: |+ L* t: ~4 z) j4 X# u! W
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
) J) O& G# s4 _: v8 I( d- Z( @ //CLK
9 m+ y+ y* A7 B; v1 ^ GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK. o1 j7 {" i9 e& `2 e5 O( r
' O, @1 i. Z: K" N% m' s3 B // LDAC
% C2 j% r, c% p4 |* f# h8 g) j- g GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK+ Q9 M! t% o0 g( {4 Z" u { m
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN: Q" ?5 f9 r/ ]9 o9 z0 K
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
( g, @" D+ L- o GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS38 I' K) ]3 ^/ g) D$ R+ b
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY }) _" l. V) c+ k5 _! r
}
; F: _9 R3 k5 a( A( ^' |+ x: p
- \& c4 V& ^+ W: I; v4 Jint main(void)6 O2 m5 X. [+ |3 d* o( J
{
. ~4 O8 C0 g7 ~ // 外设使能
: _7 k( a0 C) p" u' E- C$ \9 j PSCInit();1 j! a; J. Z2 t* X4 h
4 j8 L! L" D- n- m/ b
( A. e" s8 }/ G5 p& l3 x P/ G1 h // 管脚复用配置: c. C5 s0 t& K [5 Z* W d
GPIOBankPinMuxSet();2 ^8 ]" [$ G, @+ N' d% ~# O
for(;;)
! M: f) G& S; G' |# P% R {
' S/ b8 Z. }; i SET_SCLK();//时钟正常输出
+ E. a& W3 o4 S; o GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
/ U) [* u1 r( W m, \) l GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3& a9 V+ Q0 |: B, V
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN9 @" p9 c+ ` k; U+ B. r" a/ p
! S! \) ?5 m! ?# }9 f/ L delay(20);
% [: I- }& W: A7 u CLR_SCLK();
S( n; ]" v$ ~; R4 ^ GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3* X' \, Y- T: ~& L5 _3 x+ k
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
* C! p0 S3 ] s# o GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
. b2 B3 F! [+ r; K$ c# Y delay(20);* X$ |) O7 b, {5 ?% h
}
) ?* Q8 S; U# E}: m. y. C+ g: e! G8 w
|
|