|
|
使用下面的例子代码,不能使SIMO和CS为低电平:) u2 q7 M/ Q# }3 c6 A
void PSCInit(void)
7 r x7 u5 ^: }- p2 [' K{$ z2 F( N9 `' k$ e
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
, \& P8 ], |; Y8 O$ F}; Y5 f; [; I- V* g
) r" S# T/ @+ N8 a- n
void GPIOBankPinMuxSet(void)1 U- O! a; X: b4 @3 Q( }+ d
{
5 W5 D( k9 h V7 E9 l5 e$ W9 v // DRDY ------------ GPIO6[14] -- 1115 K* G/ }( _3 y7 s* p
// SPI1_CLK ------------ GPIO2[13] -- 463 m: E8 ^2 A" b+ o0 @0 |6 S
// SPI1_SOMI------------ GPIO2[11] -- 44
2 n9 k, l7 R# j5 r/ E // SPI1_SIMO------------ GPIO2[10] -- 43
) R {+ y4 W, l3 y; I // SPI1_CS2 ------------ GPIO1[0] -- 17! S4 A0 q. k) v9 o
// SPI1_CS3 ------------ GPIO1[1] -- 189 `" U6 P9 B+ N+ e- k4 U
- {8 f" }. T1 Y) _; _5 J HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
# y% M' x5 c0 l. g HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
! g! \+ v/ Q) O" m4 n K HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
?1 E7 ~) {( M2 B7 r! P
+ H3 L( E- O* V0 Q; f9 I) G //DRDY' S, |8 j6 }; L- y
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
- F- ~8 C6 s. n5 R' L G& ` // CS2,CS3 o2 l, ~0 R7 T! _7 l' \
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
5 c1 k. h& u% u) C2 I. X GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
( u; m/ `0 ~8 b7 G1 } //SIMO- o6 H2 g9 V* c* r. O0 R
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO! t f. q; S- n0 h
//SOMI: Q2 W0 C; P) ?3 o& B
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI" W v& @' Z8 f+ B
//CLK9 G/ a- U9 O- j% F
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
' K0 c& [$ ^8 P- P
' o p$ e+ [. g // LDAC# c4 h" l8 r& h# T
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
- O& }) G, u) o8 Q GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN1 m4 Z! b, x: P2 j4 j' H' b; L
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS22 J# G' u/ t& t8 b/ a4 o; s* }
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
% Z9 S/ o8 Z) y GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY# q" Y) [* t6 c! t9 A% `( L/ u
}4 K- O" l" w$ d. d/ q. E' |5 Y) N
2 T1 O6 D. G* G3 N% [8 Oint main(void)9 Y( A9 t6 ~7 i
{& |- f$ G/ z+ w
// 外设使能/ u* M) c4 i! K5 r+ N9 a4 q' O+ T; |
PSCInit();
) e6 z' ~" }4 L* E+ V, X; W5 C3 f- k+ e; W2 N3 q; q
( r2 `; \, m# I( Y // 管脚复用配置
+ G' w) H; w/ ]9 @ GPIOBankPinMuxSet();9 S& x6 d. g" K
for(;;)
+ ?! x8 u2 F' W8 x/ ]0 w {
$ X% o0 M9 U8 z& Q& ^2 @ SET_SCLK();//时钟正常输出8 N+ \$ b# B4 x% Z1 x& G
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS25 q6 S+ N; [0 d
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3
' I! h. w w4 K/ q. k3 |9 r8 V GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
, A" |1 ?# D* S5 [
4 `, X" z% j) [ delay(20);7 T, @, k; ~ s- M4 y- T
CLR_SCLK();' F: E1 f% C0 L
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
4 b2 b4 H B8 K1 l' [ GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS39 k+ j0 u" s* y3 z/ x6 L
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN3 I1 {- r* c5 m9 a. J- {
delay(20);2 k* C* w3 g+ f
}( |& i7 U' S y0 b
}# x8 g( J7 r$ d. J; M
|
|