|
|
使用下面的例子代码,不能使SIMO和CS为低电平:5 r9 v# a$ s% @6 Q) j
void PSCInit(void)
6 G0 Y: f9 @! ~( U' @{/ J B( D, J0 f0 u
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);5 N! j# m) A( A2 D
}
2 t' U z$ ?0 ]
- S P$ R; R9 P6 uvoid GPIOBankPinMuxSet(void)
7 ?2 B4 W# x t8 p3 c+ w' @1 }{7 L. z" ?* c$ K0 d* G2 r1 q
// DRDY ------------ GPIO6[14] -- 1112 u( u: k6 @- r( G3 g5 v0 X
// SPI1_CLK ------------ GPIO2[13] -- 46
D; g0 K* ]- J/ k* Q* ~ // SPI1_SOMI------------ GPIO2[11] -- 44
. d* r i' u% A2 K // SPI1_SIMO------------ GPIO2[10] -- 43
+ x& P# D' w1 l5 x- U. Z // SPI1_CS2 ------------ GPIO1[0] -- 17
2 _& |* Y5 d. }7 I4 l8 r7 | // SPI1_CS3 ------------ GPIO1[1] -- 18$ }( \% m: p; Y" z7 l4 S# ^
! e. p3 J; |" o; k6 o, ~* g
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
* o: M6 r5 [% Q9 f4 J E HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);( Y$ w8 B2 H; E9 q3 Q, X/ ]
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
9 M; ?" j: V6 a6 x4 l, D" d6 D- S& {6 t! k* w( b. {9 M
//DRDY
& E4 j# `* I, y0 O, Z# W3 ]6 I( m GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY w9 n" d/ n) p s _
// CS2,CS3
! M5 J3 U3 O" J* s' K GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2# B. X( T9 Q% S: U) l5 V* g `0 c
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
+ ]6 R. w* |0 E& [ //SIMO1 E* G+ D% N2 p4 g
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO/ }( [: x/ I- Y5 ^
//SOMI& Y- \3 o/ x9 I& z/ d
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
3 }4 o0 d3 Q+ M& e% t0 X* D //CLK
4 l" X! }% s L$ t GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
0 H+ p: m; D' K* r0 H3 d0 i
0 C& l+ Y+ v4 ~) Q& @& m& O1 U" r0 y // LDAC) d# `: O/ X9 s2 X4 C$ |7 w
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK# }- a) K, j9 g2 Y7 l; h) V
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN+ O6 g8 v' n' i
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
0 _1 a1 z6 [* m6 \# T. @ GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3& {0 z3 K* s. f& e: q/ M
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
" G# f4 Q* ]" Q0 B' n* p# t}
. m" ^% R% I# h* @
3 x: y$ q( }: @, x* h* F; U, zint main(void)4 z. a8 B. r7 {8 r. Q4 L
{, L6 V0 n) n2 Y" F; k! K
// 外设使能
6 w8 L; H6 I! ]$ Q3 W" K) t: x! S PSCInit();. w8 T0 t6 Y& N6 I$ F
# K; v* z2 e+ R. q
+ n# ?; ]) }% _8 W* d! E' f ?# K
// 管脚复用配置
; V& ]+ h. a5 v" I& @ GPIOBankPinMuxSet();
/ b' @0 \' n0 u for(;;)6 V+ j T* t! I O6 ^) G0 p
{
, w4 S. o, C: | SET_SCLK();//时钟正常输出
) G% D: Q/ Z) b* m' @/ R; w GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
0 z' S6 f# A. h& C0 O" f GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3( N: O# @5 R6 i6 F9 F* \; n
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
B+ K5 K! v1 w3 O+ u# u g( y
- g+ T; `( R0 c$ b1 u# r7 P delay(20);
3 a) s/ T- Z( m: D# g CLR_SCLK();$ Q5 t; v$ e- B# K" S
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3# K: a/ ]* ?( N6 w
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
' c4 {4 `( ]$ A, L' Y; c GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN7 \* T& z) E" J; ^2 \4 f
delay(20);0 v5 U" L3 s8 B( Y% i
}/ F0 S \3 j2 G+ l! H; c
}, u6 X7 i$ i1 `- A/ ] K, s
|
|