|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
" p6 P6 N* V3 Z8 ?4 p( Vvoid PSCInit(void)6 k) ^' F$ |' ?$ p5 K
{) `8 B2 ] V7 f: ?4 T0 d6 I
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
0 y/ O- h7 D9 e1 t: b7 y j6 Y}
1 S$ Z' j1 H* r( c6 m9 U: H; T
' [8 V- d+ {: t, o4 p, Qvoid GPIOBankPinMuxSet(void)
% u) k" U0 r& u! {- W{
3 c+ [# ]/ X) ?1 s: @ y // DRDY ------------ GPIO6[14] -- 111$ L6 R/ A* q8 z8 j4 r' L, B$ G
// SPI1_CLK ------------ GPIO2[13] -- 46 f6 h* x7 u" g% n2 g" o( @
// SPI1_SOMI------------ GPIO2[11] -- 44
9 x8 Y7 K0 k$ k9 E3 O# N( n$ Y // SPI1_SIMO------------ GPIO2[10] -- 433 J9 P, `" w9 [2 a9 M( Y0 F6 [$ X' B
// SPI1_CS2 ------------ GPIO1[0] -- 17$ C* g4 K- i( R
// SPI1_CS3 ------------ GPIO1[1] -- 18
o$ g+ Z3 K- _6 a: m; }! |5 _4 F9 [$ ]; N& j, Y5 m
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
4 f" [. i* O% m& M+ l HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);* o7 g8 S: y6 H" r" ]
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);6 D9 j, S0 R0 ]: |/ [. `( r
: `. _, b+ [) Z
//DRDY( |+ C u$ E& _" @1 p
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY2 _3 q I- [# @; t' N1 y
// CS2,CS3$ }7 `$ X7 Y, E4 l, O
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2$ R9 Q3 l8 m" X- n. T
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
\; x' v9 l; M* P2 _0 I( C //SIMO
& F9 p* O' f0 O: p! d7 { GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO# s G0 C; w2 K( a. t; n$ e+ `
//SOMI0 {) D# P |9 d/ R4 S& F& J
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI, W& K. f2 N) ?2 r, W, P
//CLK
* s6 j, A r4 z1 o# }: A GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
' _+ |6 A# j) G- X! W& p( S8 u; j
5 P* l5 a8 a* x; r% ~ // LDAC
1 q# h9 |" I. q GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK [9 R: k* h1 Z3 M) ~6 _8 K2 h
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
5 \! }/ ~8 e+ b GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
$ i; j3 F5 R4 _* P# i. Q; b GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
7 @/ u9 o% r3 Q+ ]8 H' n GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
$ v$ N4 X( M: ~9 s. p2 |}, J, v8 H2 O X* {/ B0 J. {+ O
; T- x/ R5 p9 p# k7 ~: kint main(void)( H9 Q+ O6 ~5 z# Y8 _$ X
{
# \/ T x; m) O- E0 a& \2 ^ // 外设使能2 e% H5 z- k- E+ s7 H9 f# A5 k W5 }
PSCInit();
1 ^( k2 R; `& w) L
. `& a2 V3 y% H2 z & A& P. U3 u W) b! V2 q- a
// 管脚复用配置6 [: ^6 H( \( G7 Q: R! a) h8 |
GPIOBankPinMuxSet();# ? W& I: ^; G8 T* s4 F
for(;;)
1 f5 l: @2 a8 y7 X5 d- {/ B, j( t {- C) ~% j" C/ U7 |# P
SET_SCLK();//时钟正常输出
+ F$ c: B( o8 b4 n8 N# c3 }3 ^* d GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS28 T! C" s+ d8 c* ?0 z. y
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3
3 i* w! r6 L# p. I3 B: w GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN, Y5 \0 ^. r0 u8 f1 R0 e8 i
- @& K: s$ j' d8 l9 B! x
delay(20);
3 R! @5 H0 ^, ?$ n& H CLR_SCLK();& G% C! T* K4 f
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
: O ]* b, a2 h- p @0 Z GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3$ [( W( p0 c+ I7 g6 j
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN7 O. m% j! X3 G* H3 X/ d. K
delay(20);
# L0 Z+ K; x/ U# k" V9 T, ?9 j }
! x& s5 k. a i, ^6 r1 o}+ s) L: I2 R: y8 M% D* X
|
|