|
|
使用下面的例子代码,不能使SIMO和CS为低电平:$ r: I+ Y8 F7 ?$ u
void PSCInit(void)
! J" Y G4 R" E{
& [3 G1 k: j; P& f PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);2 ?0 i5 g! C3 C+ q5 t. W
}! [" G# u/ p( F
. q3 x3 v: p: Z! lvoid GPIOBankPinMuxSet(void)/ @# a. `- H# g2 I
{5 H4 ?6 m$ s0 O2 C* Q
// DRDY ------------ GPIO6[14] -- 111
. z' z' N, t2 p2 a2 K- B$ S2 o% m- w" d // SPI1_CLK ------------ GPIO2[13] -- 46/ K' B6 H* E2 ~% v4 f
// SPI1_SOMI------------ GPIO2[11] -- 44
4 a8 P9 \$ U+ {8 A5 O- U // SPI1_SIMO------------ GPIO2[10] -- 431 P+ b0 t1 C! z
// SPI1_CS2 ------------ GPIO1[0] -- 17
) |) l. z8 V) p! j // SPI1_CS3 ------------ GPIO1[1] -- 188 r# u" s* C1 N$ T
5 s- @5 w. c, J" Y' p; k. B HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
3 }: a, |) y+ I1 O6 ^. E HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
' C& F# k% z; ~$ m HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
; D8 A3 j) b! N) g4 P
! R, M% \9 R* f# u; z# P- _9 h //DRDY* a( _, y9 P3 e% @" o* C) x
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
3 A5 o1 T- o: ^ s# u# e // CS2,CS3$ U, q( ?! [* s
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
8 `# I& t4 y0 e* Q GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3$ U% X% [6 P7 ^% i z- t$ t
//SIMO. x, K6 s9 \4 R2 `7 y0 W
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
9 O; c: k0 c6 b2 ] //SOMI
& w. _& \* A6 q, ?. h0 y GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI3 y. p r5 M' N+ p1 F
//CLK
5 @; A' I/ \% V# S GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK5 Y! |6 [7 d. b7 Y- \9 r: i5 ^: v
2 R+ R4 [$ n/ k4 N( j // LDAC
8 M6 H& q/ t- `* p$ a* `) I- E8 Y GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK( w4 R- M* x9 E7 N' K |
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
, ]9 z0 l: c, S: i GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS20 C) j# e! M( H
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
8 a5 J" D( u0 [2 O4 u- k GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY% N* z' I8 G% Q V; H) T9 M4 U
}, H+ B' y$ u0 }7 E# |! w) o
# G, ]1 @" `9 f- Z% A0 rint main(void)
. i; _! U; f- \{
, ]& i9 @; O; l8 g // 外设使能: H' f+ x- U. a2 b
PSCInit();4 M+ i7 S, `8 K0 ~0 a7 A6 M
, `" K" R8 x4 ]4 H
" F6 H! ~4 d+ d$ A' x/ g
// 管脚复用配置
" |" G. @- I4 n/ n5 E$ o GPIOBankPinMuxSet();. w, H* K) K0 y* Q- [
for(;;)1 s* n9 x* }. M2 a6 I5 Q
{
% }( h7 e: v7 `6 v6 t( h SET_SCLK();//时钟正常输出
# S' v6 E$ T. H+ O2 L GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS21 ^) n( C3 ]3 l c1 j( k a( C
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3
# q$ C* ? K7 W: P5 t GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
2 q, |2 F/ E/ v
`0 _: g( Y1 J8 g* n" | delay(20);
0 f: z+ h% T) v$ C0 h/ M* ~" P K2 q, D CLR_SCLK();) t, V+ h- X4 O
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
( y: O! y; y9 @; J GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
7 o8 q, F% y+ Z" j' `! H- E/ _ GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN$ K9 [; F/ x1 g" c
delay(20);2 v4 O M4 A6 l' t5 f0 l3 I
}
# ]) Z7 [$ c( Z' y}; i" G+ v9 \# Z) o5 L* r# Y! `/ q
|
|