|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
o0 `& Z, ~* j% X! _! a2 ?3 wvoid PSCInit(void). f( [- @6 c# C5 t
{
1 d+ t% n+ R" ~" q9 q7 R5 V PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);! b3 X" c2 Q5 C* I: `, g
}4 V; _: [0 W" C% s7 }7 ]. X
! u8 Y7 j+ c: ]) Q( t( ivoid GPIOBankPinMuxSet(void)
9 K$ ^- m/ c2 e. s# y! T( e{
. S n. J) p- o1 H" G2 N2 e3 j // DRDY ------------ GPIO6[14] -- 111
. z! `0 g6 u* u% n // SPI1_CLK ------------ GPIO2[13] -- 46
% W* s5 n, c4 C! L- G! h. \' u4 p% p // SPI1_SOMI------------ GPIO2[11] -- 44
5 q6 j+ q3 D9 i: q6 X // SPI1_SIMO------------ GPIO2[10] -- 43
* U) d+ l+ x* B& k: }% V8 X1 i // SPI1_CS2 ------------ GPIO1[0] -- 17# k3 f! E) R3 X |7 C! I$ d8 P
// SPI1_CS3 ------------ GPIO1[1] -- 18
+ Q9 P: N$ r9 I( ~3 S0 i1 }5 W8 m2 M
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);$ n6 K: |+ k0 s; Q2 P
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);5 Z2 e# c7 j* L6 ` ?# \/ g+ @5 Y
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
" \! i# W6 ?4 e7 D8 G3 k: f
* [0 P- O3 A R3 K4 D! Q; k6 b //DRDY
- i) ^& D* p) s3 l4 B* b* \ GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
, u X5 P: }( S. H/ g/ b" { // CS2,CS3# d- Y: ?" r& X! m% c3 C: T
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2. J3 {# Z9 x. F3 M5 _2 A
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3' F" ]! O% J7 |; [8 H; Y* Q
//SIMO4 _* l% O* Z2 `3 Y5 r y* H' Z
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO& P/ l& w5 h, s; L4 g) G
//SOMI- l! d6 X$ o- A" I
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI: ], o4 E# P1 F; u5 |
//CLK
- S. I5 {7 s+ T5 |+ d0 b1 X GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
" b9 w+ y+ K0 N
8 h( I/ q9 N/ h5 J( w // LDAC' G& U8 d7 y/ t# n* F
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK/ G' |& i1 [8 \& f! l, w6 b9 x
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
/ s1 ^, L9 y! ^. A6 F3 N1 Z" `" s GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS20 f$ Y5 T& m+ R) ^
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3 I% g6 X+ [; Q# ^
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
2 R" u. b. \5 \7 D}
& W0 i5 _2 y9 n- |
; F4 D" e* Y) D' L2 t1 I# q& hint main(void)/ c1 W5 ^2 |9 a3 _% Y) y
{9 e1 L+ G. x& |% ?' U6 U: }' o
// 外设使能( G! w) [- }" G3 f" n
PSCInit();
) u- V( M* X& p( _4 D% I# i
0 o9 I; q2 F1 o. @: A, {" O
# {" c$ U, g! L' t7 d+ g( Y // 管脚复用配置6 d4 Z4 R, F: G/ _
GPIOBankPinMuxSet();
7 x8 P, P, g: t for(;;)& `0 B1 l( A3 k4 P9 v6 h* N
{6 f1 V9 n; [9 Z- R
SET_SCLK();//时钟正常输出0 q Y8 m1 }: i2 v2 g4 G
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2: }; [( n" i, ], _% ^% N# Y
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS30 @. S; s# i1 Q9 `
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN$ h, n; |: r, x
) W6 k1 \) C4 [+ E* Z% F delay(20);' B# u: o2 w6 @# V: i
CLR_SCLK();
- o; ?) j4 M4 u& c% D GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3& J9 _9 r0 |( S
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS38 A6 h/ G1 F9 @9 j* W
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN( m1 ?! N+ s& F. O. U
delay(20);8 ]$ @/ o% a, J; ~. _: V) l
}
( u$ C+ Q/ T# k}' {2 ]* M. ^! j7 M1 K5 ~( l* Z: [
|
|