|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
3 n# T, I7 J- B4 ]# t2 ~6 ~+ Vvoid PSCInit(void)7 G' j& G- I2 Q& O) Q
{
) k0 f8 b+ _1 {, M/ v5 J# S PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);: c+ W) u1 H/ q4 k
}& q9 |- [) n' U! m; ]% r7 \4 m
. J1 Z: s2 W& O4 [% i3 x" H) ^, V9 tvoid GPIOBankPinMuxSet(void); m) g/ ]6 F: r; S/ b4 w
{. S! g) ?) H& h. f+ f# e8 \: M! a
// DRDY ------------ GPIO6[14] -- 111% [- W4 e/ i& I7 I: l
// SPI1_CLK ------------ GPIO2[13] -- 46" Q% W& i1 o) D: h/ L# a
// SPI1_SOMI------------ GPIO2[11] -- 44
! l( p4 p: r/ o# Y. K- T# _ // SPI1_SIMO------------ GPIO2[10] -- 43 K! ?, H$ o6 W% _
// SPI1_CS2 ------------ GPIO1[0] -- 17
/ m, \4 D3 J3 ~* M u // SPI1_CS3 ------------ GPIO1[1] -- 18
% M! n! K* j- S, g& D- r
m. l3 L, S: n' i0 S @4 B+ R9 ` HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);- s, F; R: @; H$ ^0 ~9 f
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);" t9 K7 c9 l& }) P
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
8 h' e/ r# i) M; P# x0 E& `
3 `' I1 A' C4 f' D( S6 L- ] A //DRDY$ {3 l2 |! h9 H; [6 `% n
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
7 R- v$ b" j$ _! b* E. a/ \ // CS2,CS3
V$ D2 \- e0 o! U0 y8 p GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS24 ^$ Z3 C6 Y8 A- w9 _) k; M
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
, D2 Y" r- a* C! J. J' z //SIMO
/ L) C6 _ [* ^# y& r GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO% J' s9 C7 ^7 G) Y4 o+ N7 H
//SOMI
4 {- c3 M, x, U* _+ `" d GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
! w# \7 U# Q% |* z1 Z/ u //CLK# C6 w0 |! o& h& ^2 b4 k
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK! r1 ?2 U8 Y) {5 Q
3 E: i$ F1 _# n0 g' b& `4 f" t
// LDAC
1 W8 L5 [* Z7 Z/ n GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
) O4 b$ {1 b% l GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN2 O: O6 E2 B" G4 W8 `( w- m
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2' E7 g! s1 V1 ]' |
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
6 o/ q' t8 D: R- Q6 v GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
# d3 \" Z7 D3 T& ?' ^}' o1 y5 ~$ _3 c7 l4 _2 N
; A6 v+ N( {; x7 W; D9 L Gint main(void)
8 d) w+ h* S) U) {7 t{
! A5 G5 g5 N$ _) V, b1 s/ O0 L // 外设使能
) D" U3 f; Y+ ?2 \0 E: ]# W PSCInit();
3 P( r& g4 G. k2 P
1 p, U& a" B9 _ $ d& }) b# o" c- ~0 V# p7 j: f. [
// 管脚复用配置! X& p0 J7 B+ ?- }7 U8 ^6 d) M
GPIOBankPinMuxSet();
' s& y* ?! C# g* F for(;;)
( S2 z S @5 {8 D {5 k5 h; i$ t7 L" ?
SET_SCLK();//时钟正常输出
% c) ~4 G9 g: \7 C: _& W! Q+ l GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2$ o0 t: \( O8 L4 A! g V. Q6 ]
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3 D# B8 W/ `1 a
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN2 G% j# t0 ` A& l M
& k5 Q8 s+ Y% O# e6 ?
delay(20);
& P, j1 W/ R6 y e CLR_SCLK();
3 A; K% o8 w( V: N+ M GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3- V5 @ S5 f/ e/ O
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
) }( L4 m3 T: x" | GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
7 A2 O3 a- B' D1 h# O delay(20);; w; J8 r' D R: ^! U. ?
}
I% B9 R- `' O( y, Z% Z. f}# ?% H; }7 }! }8 V" A. z
|
|