|
|
使用下面的例子代码,不能使SIMO和CS为低电平:) F7 h6 s/ q& }
void PSCInit(void)
5 C0 U; h: E( V6 Z" _* d u6 }{
' L+ ^; z8 ~5 A4 f PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
% `" Y' h- |" v' f' U$ i}9 y! c, @- C2 t& d
6 U/ B: ^+ F, l6 `void GPIOBankPinMuxSet(void)" u2 h! I% Q' M( H$ s
{
" }/ w; L8 Y3 e/ ?9 f% A& }, u. J // DRDY ------------ GPIO6[14] -- 111$ }& d9 ]. N7 k' j N
// SPI1_CLK ------------ GPIO2[13] -- 46
4 {: A$ J0 p% ]. ~) r( Q9 m( R // SPI1_SOMI------------ GPIO2[11] -- 44
0 j! [4 V& E$ t! K8 i7 u" e( L# } // SPI1_SIMO------------ GPIO2[10] -- 439 x" Q# s. h, ^
// SPI1_CS2 ------------ GPIO1[0] -- 17
/ E* G. n( Y9 L# a // SPI1_CS3 ------------ GPIO1[1] -- 18
' M F" s2 v7 U$ w* ]" [, { l' f4 J* r1 r. I+ p; c
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);: m# z. p& }5 Y3 M, Z; J- x
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
: v) H9 ?* M& K# d* N5 L; f HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
! l7 f/ _1 a( ]. c; Q8 x a$ @8 n/ i8 C; h3 v% l/ S) H
//DRDY1 X$ u8 r& r' v* z9 c/ D
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY! O* @ b! e$ J/ W& Z
// CS2,CS3: Q+ O6 E5 f- z5 A
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2 \0 r. J( `( N
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
: N( v) B- ]" @8 q/ N //SIMO& D5 R8 t3 n$ d
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
; [/ h, G. I Q6 T5 p3 N; T //SOMI
( F3 ] }& o) y GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI! G2 ]4 U A" ^1 t2 s2 d
//CLK7 H- _6 y5 |+ o+ Z# V: z- n9 R. N9 {
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK4 I. d5 T1 O l9 L
+ b3 [' @- s- d9 P) P x2 \ A // LDAC/ {4 C! C8 g% x6 Z
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK% \6 ]& @; F8 r4 @
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
* R: {& ] C6 N: B6 T& l0 q GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
; ~$ z2 ?& l4 |2 i4 M8 U+ J. J GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3& R* I# F. D) j7 F4 c7 Q
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY3 t, U0 N u2 q/ p
}
4 _. K& [; D" }6 w2 o) @: v
# i2 o/ R& l o7 k5 {: Gint main(void)( L S+ I4 v3 _/ h$ ^
{
, @7 t) k2 Z2 K. p // 外设使能
5 o) k. y! j( g2 m" z( [ PSCInit();
5 a- N$ b ?# E* a% U2 M. J/ V$ b. I; I" a, Y& r
4 w- S! p) c9 l$ S // 管脚复用配置
$ q! V) a g* A* \4 E9 S3 D GPIOBankPinMuxSet();
" _7 {; Y" l: V' q3 | for(;;)
+ ^# x( p" }, j% T0 { {( G- E6 _! d! q+ @0 p
SET_SCLK();//时钟正常输出1 O: a1 @# `, i3 j- c, E* ~* S
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
5 ^1 p+ O5 e3 R$ R3 F- }' P GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS31 l2 L/ b2 ?7 S2 f/ }4 n) w
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
2 j' B3 z. {+ E. e/ Z/ V- B, F9 W, ^2 O ?+ U8 r7 h
delay(20);
# s4 Y$ ~% d8 d8 h' e# ^" u/ X CLR_SCLK();2 O9 m/ K0 G) n! h" L
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3/ \$ U/ R" z# T5 u
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS34 C' ~9 V3 B, m+ _7 m( c% s7 W% _
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN- j) _6 S- h2 g
delay(20);
) z [) ^" I3 _7 h% u5 h2 o, Q }$ T0 @! b: \! c; a+ X4 k
}+ w4 k6 r; I3 ]
|
|