|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
) j1 G* i4 P7 F/ W k2 [void PSCInit(void)' W2 D" J ?6 ^. D; n
{
3 j% r6 X0 }# o- d PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
! N) J% U4 _. w% b" z}8 C' e" W. Q, |7 O0 A @
1 Y# f& y9 Z* o) S2 A1 P: pvoid GPIOBankPinMuxSet(void)* {* h* L: d% p4 x# S; b5 p) Z
{9 z8 \8 ^" Q0 |. X, D8 L: n) x
// DRDY ------------ GPIO6[14] -- 111
! `8 H' G W0 K9 B& V' f" ?' X // SPI1_CLK ------------ GPIO2[13] -- 46/ y C3 _% Z2 y$ I2 q
// SPI1_SOMI------------ GPIO2[11] -- 443 W: K, B9 C1 o2 G8 ? Z
// SPI1_SIMO------------ GPIO2[10] -- 43+ T9 V' S" A7 I; W; z! }
// SPI1_CS2 ------------ GPIO1[0] -- 17
) j/ k7 W4 T, E1 R // SPI1_CS3 ------------ GPIO1[1] -- 181 S4 i8 _) F. V. F
% ^$ }3 s3 K; v' M, a7 y HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
6 G, N4 P5 k1 _, O0 d* v% _8 ?6 @ HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);# m4 O, f. v+ b0 h9 v3 H1 U
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
, n& c+ X0 P7 \/ l7 I3 d& K. W0 p' |! q' G
//DRDY
8 y; n8 C7 Q! Y: e1 t5 m GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
0 M. X1 L1 Y* ]3 P% d // CS2,CS3) _% d7 F8 F5 ?% K
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS29 d# B9 Q0 S5 C/ G. B
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3# W4 E1 \3 R' [! D1 r/ W, u
//SIMO
, h, ?9 P$ `' \ I4 Y0 C' C GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
& x5 N( N& _/ ^6 E! [) m E0 @" x //SOMI) C8 C0 a4 ~; i6 ]
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI4 Q0 x& l9 p- T3 r4 ^4 u- O
//CLK% }; i$ Z1 s1 u. S$ W9 r
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
+ o" \/ u# j P$ C& z R( T0 u' v% P9 j, u4 }6 L* s
// LDAC6 F9 _: ]' M, U0 V& \
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
4 U8 Q) A+ A! u! f" A1 R: u GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
" N9 u% |, j; w3 Z GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
) O- r0 f, q5 O GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS32 B9 ]# ^: l% [6 T* t
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
! N% R% u! L4 m; ]9 x5 y+ N}
5 w* S+ A- C* ]1 U8 x D0 c; `" Q
8 y6 @3 o p+ }6 z7 b9 hint main(void)- @/ e/ P- G1 q$ `3 E
{
8 ]0 e4 b5 p8 L // 外设使能
+ s! U5 Y% {1 x E! E PSCInit();1 C$ ~0 e' k8 {4 L/ f6 t
' h" I/ ?" u! y1 h% L) F+ v/ p: x; V
$ {5 _: [& Y% m# | // 管脚复用配置
6 i' ]; l+ s2 E) p+ ]) a1 C GPIOBankPinMuxSet();
u: @. j2 V% C2 c for(;;)3 j; D! r5 R/ i7 q* O
{3 C1 L4 S6 j1 N, p9 a
SET_SCLK();//时钟正常输出/ q3 j( O |9 c, x
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
) g: J1 J* [0 ~# o. x+ Q2 @6 z) {& j/ L GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3
' P& H% Q" u8 R& \; t GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN4 b5 {8 W+ @) N& Z: C) x
* g- Y- k9 h; l/ ]1 I delay(20);
- O$ b; U- _) K3 X" w CLR_SCLK();
8 H$ X% S, T% {' P, n2 O, w) D+ p0 ] GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS39 S8 D3 t% X2 g1 n7 T; s
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS34 d! ~& h9 Z* N7 {
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN, E/ R; L$ {6 \. [$ [9 m8 {8 A
delay(20);2 B2 ?% M' l* t' J# @8 K
}
- @. S/ L: T) r* b}6 E" D9 U/ n) P0 W+ P& \
|
|