|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
9 C5 w8 h% j3 xvoid PSCInit(void)
9 x& N2 h3 e" Z5 D. L. X/ s) C# S{
! ^4 q9 Y6 T2 m. t2 |, X% i$ t PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
/ h! E0 J( R) d8 Z% c}4 B( x' N6 k/ d
/ B. y! e. X- u+ e1 F
void GPIOBankPinMuxSet(void)' I& B9 Q: a: I' v! m
{% m9 h5 @. R9 y1 @# [& W$ v
// DRDY ------------ GPIO6[14] -- 111
% Q' }7 p- H; V( w0 p // SPI1_CLK ------------ GPIO2[13] -- 46
+ Y6 `' A1 |" l7 [+ V+ C( w+ x // SPI1_SOMI------------ GPIO2[11] -- 44
9 W2 P. C* H( E( `- F // SPI1_SIMO------------ GPIO2[10] -- 43
7 i8 c; S7 ~' A" k' P# s // SPI1_CS2 ------------ GPIO1[0] -- 17
8 k# ~) M& m$ S // SPI1_CS3 ------------ GPIO1[1] -- 18* i, J u! ^2 W2 p9 S0 k* S& _8 Q
W! o3 H/ G9 d! C% f* T" L! a
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
2 x" F% n% M: G- r" M HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
/ [1 |) h5 O8 n! {1 H& q" _ HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
- s! ?" X* ^4 u( n) N
/ F( x7 h" {8 Z) w9 D) \$ O$ d* h //DRDY
" L2 R2 o3 p) ^, _. E: W GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY9 l7 [- r' {! P
// CS2,CS3
# A( E/ o% Z) X* e GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
( r0 v/ X. v' u9 A+ O3 T GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
- ~/ U; |! m3 W( _" V //SIMO3 @' |/ X+ ^8 q9 z
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO7 k, F# y; R) U _0 Q4 @; e6 V# c
//SOMI
6 j2 S8 E, e+ O% i8 P: S8 |) S2 e _" j GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI7 s, Y; C3 X3 x3 w8 u' d
//CLK! h9 S/ Z. i; ~' X8 w
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK- B# W; f( E7 a
; N% k w" p6 \3 R5 B( s! s. j // LDAC- s; `+ L$ O* K9 q( n
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
6 j, l+ U8 W2 @, \! \' c GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN$ T+ p6 }5 Q4 N5 M& u
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
& ]* T5 L- ^6 A- T$ ~ GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS37 h- ]- }% V$ u* }6 H: Q. p* x% R
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
6 d6 ]" ?' `& A7 w b H' s2 ~}
- w: M' [& q: d5 j# l
4 H. a4 L. t8 bint main(void)& h3 r3 _- @/ o ?8 J
{/ ?: O% b9 M. Y! d
// 外设使能
% @- y' ] p0 X) b1 s/ Q PSCInit();0 Q6 c3 |* q8 o9 A' }3 i
) {3 T1 w$ F0 I0 v' W$ u/ d+ ` W: } & P _" F) U0 F0 G6 p* k
// 管脚复用配置
3 T7 _1 Q9 [9 {. q, W GPIOBankPinMuxSet();
( }) W% o1 d2 i: L for(;;)3 K* P- v+ b# B/ x; a' C/ X
{9 d9 p, W1 [0 W. \" V$ D5 o
SET_SCLK();//时钟正常输出" ]: v' \1 z9 G9 P& z h. V( V
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS22 m" k. m' @4 N w; L
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3
e3 ~, m! H$ i2 u- U! ~2 U GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
5 ]- H# `3 Y" ]$ f' L4 M [0 M3 ^4 s) `" s ^9 l* u
delay(20);
3 o- ]/ L: A5 K$ F6 i- d& K, Q CLR_SCLK();
- m1 L: c% n$ d4 t9 K2 ~# F GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
2 ~! a I5 ~$ R GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
7 R& A9 I! _) _' _* \: X GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN* P7 t5 Z) q& x) e
delay(20);% F- x+ _6 }9 _- N1 `3 G2 B
}# j* u& R+ E8 V F& ^
}+ e8 i2 r- K0 d5 G5 Z0 b @
|
|