|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
6 T+ e' d+ q; J- m; t. O5 \void PSCInit(void)
# `2 v" ]2 c. y p$ j{6 k! [5 e2 Y T5 g! T- A0 B
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);6 t: G" K! U' @" H! w
}
\( U) I% q! C6 [1 w' ]# X1 _$ j5 w8 J V
void GPIOBankPinMuxSet(void)
' A3 \& w' F) Y{
! ^( {2 ^7 S2 K+ o; S // DRDY ------------ GPIO6[14] -- 111; c1 A. N4 o( Y0 f5 b5 @
// SPI1_CLK ------------ GPIO2[13] -- 46& F% r+ K3 ]# d( o5 n; f- P
// SPI1_SOMI------------ GPIO2[11] -- 44
7 P" k8 V6 w: M" l7 v // SPI1_SIMO------------ GPIO2[10] -- 43/ b& F4 s' |5 e, S5 O; _/ b
// SPI1_CS2 ------------ GPIO1[0] -- 17
& D! z' f$ `3 i+ @! J6 {3 q+ ? // SPI1_CS3 ------------ GPIO1[1] -- 18% Y- h, m' g4 X/ D( g1 B' N) u
& u$ w; s- R# j# Y7 O% Q: C HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
- Q9 L" u$ v' f3 f HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);" [# j" N* {5 n+ H# E% Q
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);; p4 p8 b/ w1 M3 t
( H7 J5 W& J6 H( C* k //DRDY
2 h4 |) w# o, j# m4 j7 A- v/ A GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
! q6 y1 ~& l2 U/ ~ // CS2,CS3
. k& ~3 o% M' Q0 U, J GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
' E0 b x+ S+ P GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3# v9 U% f5 w3 y8 R/ G) h
//SIMO# K8 a6 C) A+ R; U% }& n; F
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
& x9 o- K# X& S$ L. ?: A //SOMI
2 g/ U0 c* @: f* _ GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI u# m: [1 [* {
//CLK& D" C, _6 d; l( Z
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK9 i0 n6 O0 O! \4 b6 ]2 ^6 R% h$ q( y
) m" O2 [9 V5 n // LDAC E+ h: c7 j8 B7 @* N, L E
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK" |( d5 Y9 |% L8 {
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN/ Z" _; B/ }# r$ d7 X" A
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2+ X+ ~, y& x! ~
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3' z+ P8 |4 l" c$ E0 t
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY* _( ^6 y4 {# k5 Y6 E9 K
}" Y3 f; v4 j) n+ w. t/ d- F4 }
/ q' ~- f9 B" e' m( Lint main(void)
: u- y" V. ?2 t2 @) |. `{
' c& ]4 Z ?) [' f F: | // 外设使能5 a# _ }! Z8 \0 i
PSCInit();
: W+ ?8 `$ R2 t% q2 {6 a4 @% J6 C& ?% E. V$ N# `
' l" R) D/ [9 L9 | // 管脚复用配置
|6 l- ~+ r$ i3 J, N" V GPIOBankPinMuxSet();7 X P1 i. a3 Y- j# \! B2 O
for(;;)& Y0 ^; A% t( p( D2 `; f% k
{8 P. N# t i) @' z q
SET_SCLK();//时钟正常输出
9 y. d: O) ~7 M9 D; b GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS25 t. s1 Q6 p- ~8 f7 |! l3 r
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3# A' `( W7 y8 p u' t. d% u' R; y
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
& c5 c, \9 i1 P
, a- z) u* `1 e& f. ~: R. t delay(20);
. F) t7 |& U/ M( ], S1 \ CLR_SCLK();
; ^- @0 m: h- Y$ H GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS39 W: E; t3 I7 j
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS30 S& L0 E3 x8 i) |- j1 `
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
' I1 N5 E( y# r' Z% {7 R/ ] delay(20);2 F- m; E' I6 a6 E' r
}
3 A' X; w$ w* A# {% B}8 l7 b I- v4 P, W9 y0 K
|
|