|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
9 Y. F; s% U( _1 i% e6 R6 q, D2 c. Yvoid PSCInit(void)2 h; _) e$ U, z0 ] w d" `
{
! a& D" q' J' k6 K$ @ PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
# z2 o5 G& ]* b6 v6 }) x}% u0 J. L' q* k9 A5 k* r/ d
" e* w& h& I# S# g+ bvoid GPIOBankPinMuxSet(void)
' Q8 Z5 } E. s{4 m9 o* D% P7 g" y
// DRDY ------------ GPIO6[14] -- 111- Z) H: x5 ^% E- {' Z1 Y
// SPI1_CLK ------------ GPIO2[13] -- 46, K1 ?- |" H& ~3 U! [2 E9 i6 K
// SPI1_SOMI------------ GPIO2[11] -- 44 V$ n2 Y% d$ C+ m) O4 M# j
// SPI1_SIMO------------ GPIO2[10] -- 43! K. L) O# H) R: Z- l2 Y
// SPI1_CS2 ------------ GPIO1[0] -- 17" B$ t4 ^% y: ?1 L& b
// SPI1_CS3 ------------ GPIO1[1] -- 181 @+ j- z$ t5 S
- w# B) {6 u. m( F8 U7 x HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);0 ]1 | x* q6 d# u% j. J. D
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);; F8 L) f7 W' { o2 f
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
8 b o4 G. b6 |9 S# u# N/ \" D$ P. [/ N* o4 Q
//DRDY
6 n0 ^9 f( V: w7 @+ A: B6 D GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
; G, c' v& u7 x2 J // CS2,CS3
& W# u3 o2 Y8 u. P5 H" k9 F. r8 J4 l GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
4 u; b# ^. [+ t GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3* w# u' o/ Q/ a& L$ m, m! G
//SIMO( E3 l2 c# e9 S7 ]( f5 e
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO# v1 H. ]1 N t8 q2 K x
//SOMI
4 ~- }: c/ j" A3 R1 L+ A GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
. q* `3 s( V" H1 A) I //CLK% n n; z1 g0 c( k9 s
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
* `* ~) H8 `' C5 Z( B& v5 h
8 V( b( U: q8 W8 T' C h+ | // LDAC
; P- l5 ~/ E, H: p1 B* {' S GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK, y: o8 j6 [) T0 d
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN# ?2 L6 i' c. I" F6 I0 O/ h/ l8 q
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
. k6 C+ S2 H/ U& b GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
- U, V' B, o. M. I- j GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY+ z5 P! @; @2 I4 f8 z
}3 v: v* t, w/ o
2 a7 e5 C0 ~0 ?8 K4 T" ?; x/ Vint main(void)
' p. j9 Z5 U" d/ j+ v: c* ~{
7 p8 ?* n$ m8 z // 外设使能5 R% x' j r2 ^8 Y: {" J8 W
PSCInit();
$ Q! A, q1 G1 P7 g
! Q/ N' V2 o0 p0 ^4 y" e# e, g$ j
$ E5 R1 Z1 R' C b4 K0 F, \3 k // 管脚复用配置
' T: r* Z4 e8 p6 G) O GPIOBankPinMuxSet();
8 b7 h- v8 A Z0 u/ V$ o. v for(;;)
. R7 _9 y0 i, h {& D( t" T! k% K( t$ R
SET_SCLK();//时钟正常输出' F$ v& D3 S# e: w. f5 K5 l3 C& a
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS22 j+ U2 q/ r" p$ V9 P" e
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3* |4 }1 R, H0 M8 U$ N# ?5 @( v
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN# u0 @$ o1 \7 ?0 n3 }2 d: d
; N/ t% |, A/ t, L" S4 N delay(20);3 |, A" e9 h2 F, N1 i% x L
CLR_SCLK();
# }7 C, s* I6 y2 q. U, K2 T GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
. y. d5 k/ l e GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3! c! A: K3 [+ n: b
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN, p; v5 c1 v( s" Z0 d
delay(20);0 z4 [: A2 U0 ^* r/ i) }8 ~+ c& d
}
3 V. G" L& u0 b9 }0 n}
% x, R' X4 W- g. d7 q" E |
|