|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
# [. f) n. F1 t0 m2 D Hvoid PSCInit(void)
0 L- O% P; S6 M o6 j9 e9 v0 U- E{
# w, j7 v" b- k% Z5 O0 h2 @' y PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
0 t7 D: Y9 ]( p1 v( N}: w4 Z. S M( C
5 J; g, @* {4 x" W0 Fvoid GPIOBankPinMuxSet(void)0 l7 w' U2 B8 Z' K) b9 C& H7 J
{" y1 e6 d9 c7 V
// DRDY ------------ GPIO6[14] -- 111
$ o) v& a$ R7 r6 A // SPI1_CLK ------------ GPIO2[13] -- 46
8 L3 p, F+ D( K# l5 t2 }- g( A // SPI1_SOMI------------ GPIO2[11] -- 44
; ?1 [4 ?7 w' T) z" H; m7 A, C( g // SPI1_SIMO------------ GPIO2[10] -- 43
3 ~, y5 \9 q! c+ {& N // SPI1_CS2 ------------ GPIO1[0] -- 17
. n3 _, y; z S s8 z: Y // SPI1_CS3 ------------ GPIO1[1] -- 18
- P! g1 d- Y. G7 }, ~0 b* t6 u9 V) K5 C b ~) m1 L; Q
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
7 o* m" F, e) Y( D% A4 ^5 p HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);/ X. t3 e- b+ d! w
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);+ H: M" }4 D+ h. a" Z; c* a' R
/ T N8 y6 L8 M( H$ o+ ~8 k" `
//DRDY
c2 \* b) h" p6 m6 P, B GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
3 r, B9 z M' D9 W1 a% b8 B0 d! N$ Q // CS2,CS3
* F' `! B! O- R/ ]; D% }% z* _ GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS20 `; q( f; ^6 x; }4 Q; A
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS31 B& `( p: m# W. A" P' F8 N
//SIMO( M3 E# u: G @6 Q9 ?2 u
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO8 T, F* O4 a2 g: h( q6 Y
//SOMI
# k; O( B, a r4 i1 O( _ GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
7 ~- h# B! U K //CLK
7 ]/ f9 I( n0 C3 V6 N! G# `: ~ GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
" e. I. I8 K$ U& T8 {3 b' z1 F4 {
: H7 A3 K4 M2 e6 {6 o // LDAC6 }) Z1 j3 C4 j' X4 g, P% B- y5 O
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
4 n0 K e6 y7 C W' y) ` GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
; j" ]( p9 \* n' T5 i3 I- z2 i" _ GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS20 y2 Y6 e8 b: ~! h7 h8 E: H
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3: ]& Z# _1 s: w
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
* `3 T! P( V+ F, M}6 h" j$ F, Q" p+ O6 k, ?8 e
5 [" A+ `: b# U
int main(void)3 H5 z2 S$ W1 l& @: x0 H6 J
{
! z- r/ g: }9 w // 外设使能- ^- ]( n! a/ m$ s
PSCInit();7 I+ {2 t) E3 X/ K) b2 e |. k
3 c9 r' O# E- {
$ q! l9 R! {' ` // 管脚复用配置) J0 v- a' E% P# m$ d+ j
GPIOBankPinMuxSet();
4 A/ V/ g1 U; h! f1 [9 V for(;;) g1 ?0 p& ]$ I) a I4 y/ W
{9 a: n( M: E! {- k
SET_SCLK();//时钟正常输出, [" E0 s$ \ d1 E: _ K
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2; U9 i" F" L: q$ }5 y: c
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3
( _* y9 s0 U- E `$ D/ F GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN% t0 Y, O' e, P% T
- P8 N+ a }5 k% k1 P( C& U delay(20);! A4 G& @; B' r% S5 D) I* g
CLR_SCLK();2 ]7 r/ j1 O' h6 ~% {; {( j6 I) C+ g9 Y
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3" Q( k/ c+ n% l9 u; n. a
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3$ T& s" H. Z+ E* G* y7 `, N4 f" b
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
" O4 w- y% A. k$ n* e( u& U delay(20);
1 b& a" m2 B% k; O1 f" @ }# Y/ g4 c0 T7 k! {# Y
}6 M8 I/ q, f3 u* k5 k/ R- C
|
|