|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
1 |/ u9 d$ V N) O2 {5 n" Dvoid PSCInit(void), z/ V2 }3 z# G: {8 [8 Y
{
+ C& m! }! R; _$ b, ~ PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);: O: W+ o) l( Q2 x
}
/ W9 d/ r* L& Z- E3 B' h
% P8 N4 a" k* b, S1 Nvoid GPIOBankPinMuxSet(void)2 \, q: t0 O* S9 y; J" y
{, S1 {4 T" n% W; u; Z4 `& D
// DRDY ------------ GPIO6[14] -- 111
3 @3 N2 _2 p4 r$ a // SPI1_CLK ------------ GPIO2[13] -- 46
# A4 p2 H9 P6 i3 V // SPI1_SOMI------------ GPIO2[11] -- 44
% K& k& y! }% A% t // SPI1_SIMO------------ GPIO2[10] -- 43$ d! l- S1 f$ ]7 a
// SPI1_CS2 ------------ GPIO1[0] -- 17
4 c$ W4 n# v7 B3 S/ W' o6 D( P7 E+ z // SPI1_CS3 ------------ GPIO1[1] -- 18
( o- c6 ` ? A2 a. K
! l- f' u4 z" \+ f" c* M% H# N HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
: Q3 f4 N' y( P x3 b HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);8 h: z" |, [6 k7 e* A% ^9 f
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);" I2 i+ D# o( b0 O4 i/ W" ^- u
$ O- O# K( g" G i! U# u
//DRDY
. Q9 `7 k% P {* q% f% F( m+ @ GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY$ W, f* M$ d8 N, _ X
// CS2,CS3
+ M/ M: F3 Q3 A+ u7 _0 P GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2. L- V* w, ]& ^/ t! r, h
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
$ b" h* A$ J# j# a' G //SIMO; G2 T3 _2 ~, [) }& x) c3 \
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
- ~) @2 l5 ^( |/ K% s //SOMI
7 {+ j. A5 z/ p; h0 {6 I& Z GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI4 T& ?2 z$ {- `. l7 y% W
//CLK
- n, W5 v, U( J GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK0 m3 I0 g6 s6 ~- I% K/ [: D
2 e* c+ a+ l1 P! Q& R // LDAC
2 o* p7 L/ ]& ^, [; X& I GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
3 B! D- ~% O4 \3 o' N+ s+ {/ ]; n* S GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN( }/ z+ p: V% i+ }# n
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
# h& Q. W+ T2 g, V2 b) d$ r GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
( o+ f) W3 ]" ?0 x; Y GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
7 b h7 J7 c5 i: I$ w, D- v2 G: {}
+ g- U/ O& X; q( N
3 g3 E2 x6 r, Bint main(void)/ |2 r. P8 ?( t/ s
{* \3 p9 L1 M, |8 F& O
// 外设使能( A6 \; t4 @1 Y6 c3 r2 Q8 u' C0 _
PSCInit();! {7 Q' s( W0 c! ?9 ^* l; o4 x' H! ]
1 l o F/ c1 w: d
( B% ?. R# K4 V6 \5 _ // 管脚复用配置$ E7 i) E/ s) T7 k
GPIOBankPinMuxSet();
) h2 P/ Y1 j) c5 Y5 ?- a7 E8 ~) H for(;;)* f! m* J0 k& l5 O3 F
{7 r+ N- v+ G5 U: K8 m5 T. E
SET_SCLK();//时钟正常输出
. i5 @. K" |8 q! L v GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS23 s+ I6 w* n3 z3 y4 h4 [
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3
1 y& T7 C+ j/ `6 Q( c9 A GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN( T) b5 K) Z; b. e! a" X* r
! S' B% J- {: H6 j: Y, X
delay(20);1 J$ c2 w4 @# r6 C3 E
CLR_SCLK();1 h7 }, i& G' C9 \, O$ B5 c! s
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS30 b' r- h! i8 x" s! {- u" Q& i
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3; r5 o; a4 u# s4 e% I
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
8 B- U9 E! E) C! c n delay(20);5 g9 ?5 m. d% o0 F6 ?
}
& v# e9 r5 h2 a Y$ R6 p) W}( ` k x, K- S3 h7 E
|
|