|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
9 l9 L! R8 a H( E0 gvoid PSCInit(void)
3 a% c3 I6 [ R" ~7 \2 s }{" c0 r- j1 O3 ?1 l6 p: h2 H- k% a
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
- E. d/ T& e1 L% D2 p1 ?}3 z' O- B; Y3 ~6 `9 y
* m: {4 A; D! e; vvoid GPIOBankPinMuxSet(void)) `& o# N- T" i1 r" C& u- M
{
9 ?8 v8 u8 s7 D g! } // DRDY ------------ GPIO6[14] -- 111 W @& y! W* t2 z8 o u
// SPI1_CLK ------------ GPIO2[13] -- 46, ~! O, k6 h! H7 v
// SPI1_SOMI------------ GPIO2[11] -- 44
- L2 p% q ^! C8 r Q3 W // SPI1_SIMO------------ GPIO2[10] -- 43! c* l$ H. |& ~& j( J0 |2 W5 H
// SPI1_CS2 ------------ GPIO1[0] -- 17
9 ?! O0 R, D* }7 w1 F% \9 o u // SPI1_CS3 ------------ GPIO1[1] -- 18% v0 k0 x+ A7 n* z
3 K9 e& G v" B* B4 q# S! D4 g
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);3 d0 m3 _5 y: {$ ~0 n
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);( a" C' A# I& H7 ^5 t
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);9 X! j8 X3 z5 U* h0 m0 S X- D$ K
( o0 `$ @- ?5 O) o2 y& z
//DRDY( i: v1 l4 L: ^% Z! X) v9 j5 l: V. W3 E
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY' G9 z6 H! a. n+ Y
// CS2,CS3. i2 A x7 ?. Z1 G. l
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2* N( H$ j; e6 m2 ]8 c
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
1 k# _( j9 F: A: u' S% A# N //SIMO
5 f+ @4 C+ \! z; C, X9 c GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO2 W* w: p) O& f' w: X3 ~2 B
//SOMI
u8 c8 n- X1 Z3 v9 E/ G GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
L3 [7 w0 k6 z3 V //CLK/ L" \! j" u0 x- ?+ y- r
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
8 r- x8 [; e$ p/ k2 p, H: M" w$ b. U
! N( ]$ K* l( [ n' K" v // LDAC2 i% A, U4 i2 z7 w4 R. r$ u& e7 J& q
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
! Z) n; K/ a- w9 J GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN: g6 ?! G* H: {/ O3 `3 D) r
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2" c+ J" H0 b9 x" e: X+ |. G
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS34 R/ Q, f8 T# C3 P: d
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY7 F; ~5 O( ]4 e+ L
} Z) f$ j6 P) c5 K: V0 I
" N: w1 `' \1 Q' _! z) z, ~; X
int main(void)
$ q+ l5 b$ b0 m. T8 T& F{
! `: J: L: n4 D6 ^& W9 @ // 外设使能3 u2 U- R" B; y
PSCInit();" G! k0 \, _- e) @9 f. I; ?, K
7 M. b3 J) _ h6 v+ `; m0 X
7 L, }6 v2 E( [ // 管脚复用配置: i. I; @2 C; t2 X& \2 P
GPIOBankPinMuxSet();
& s. t, s1 a* x2 ?9 ~ for(;;)
' q1 |7 i6 t! W: X' E/ c0 A {1 W. o$ N1 C, ~3 P
SET_SCLK();//时钟正常输出' z8 m+ X! I/ l: c# g0 v
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2* d" @/ S% U C: @' i$ r7 j
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS33 {3 t, h3 {* [+ O) `
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN; W/ g2 L3 _) C7 E: {& w' m
* m4 k* \8 l) e5 m# x" z" Q5 F delay(20);
+ _( p5 I" R0 E( A& X+ f. {, f6 L CLR_SCLK();2 Q* l1 v) D, T! [- |& F" @
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
/ t1 S8 N! \# \/ D GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
* q5 F% ~4 s- m7 w" @ GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN" `. E# r4 K3 B2 J5 ^! W
delay(20);
[. R. c' {) O }7 l S* t9 { O2 }( _5 L5 }
}7 D# [: I8 h: ?. D
|
|