|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
7 ~" d& T, E2 `8 M, ?2 w4 Bvoid PSCInit(void)2 \& b9 W# { A) ?
{
# ~; F& u& q! @0 Y1 W) ]# X; \$ r PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);% R" H3 u3 C1 Z d8 g1 s
}9 [9 B" Q6 U3 f5 P+ k
8 B1 z8 }+ Q: b4 M2 T
void GPIOBankPinMuxSet(void)6 P" j3 W4 M" ~4 L
{8 O% A& ]7 S9 H' [& s" A
// DRDY ------------ GPIO6[14] -- 111
6 v) ?% ~' m* `& N4 G // SPI1_CLK ------------ GPIO2[13] -- 46; d+ f S. Y0 O
// SPI1_SOMI------------ GPIO2[11] -- 44: B0 C) ] ]2 }5 i1 z4 B
// SPI1_SIMO------------ GPIO2[10] -- 43
+ l, C& T. H' c4 d- D' y# e // SPI1_CS2 ------------ GPIO1[0] -- 17
# F" x- n) T1 r x. f! q. C5 z, }5 K' Z // SPI1_CS3 ------------ GPIO1[1] -- 18
' g" [+ f8 l& I* h) X
1 R& |$ d, j. w* m HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);4 o8 u8 J, c& ~" C \' s# J9 K" ^
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
" F- @* m$ f* K+ R HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);* O, s2 C+ y. ?1 w
, k% x/ a9 w$ n! a5 u$ V8 H //DRDY$ b' j# B: O- j8 b
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
/ J# ~/ Z0 [2 x0 k // CS2,CS3+ y8 z% G" Y$ S7 L! S$ ~
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS27 c! s" V1 T5 ^. X5 A
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS31 i% f8 s5 U0 K6 Y
//SIMO( ^/ o- S( N; C" J" m- y; H" d
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO5 }' @# S6 e1 ?, v$ [% D$ \' H, ?0 N6 K
//SOMI
" x2 q/ a2 \( V5 X+ y! | GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI: v! h+ u& q6 r/ M$ e- c3 c3 I
//CLK
1 l8 o5 M" v5 i7 _& F+ t GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
! J3 \2 ~: ?5 d# v
$ v @! p/ O B1 M0 j! I // LDAC
# C5 X- t9 h2 _( U GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK. e7 X$ W. [3 P v0 Y1 X8 g& U
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN4 _: D8 M. o; g
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
+ b" s6 Y9 x- t9 d6 A4 H4 v4 ^. ~2 Z GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3& [* m2 E; W$ D
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
4 p% R; N( S m& c \1 @/ _}$ S) C8 ~2 Q! I. Q& U
9 \# o; T s; I
int main(void)8 L2 [' `4 S0 p4 p6 G8 i
{
" {* v7 V- h5 z a" C5 e3 w1 { // 外设使能1 E, }; t6 V' p" P) a5 e& U5 F
PSCInit();7 n6 b9 f8 I7 n$ n# W( \
* U; y, }! E ~" f * O0 O* P' [* C5 i
// 管脚复用配置3 F8 M6 [# K( a) w
GPIOBankPinMuxSet();) F6 F1 D- g8 z( r! M' P& H! F
for(;;)
8 J# v' @; ?& T& I* Q- z {
8 J, c) b/ u: T9 b& z, Q SET_SCLK();//时钟正常输出
* q" ]; a( _+ u5 i1 z6 B- l GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2% c! E; S1 ?2 u& w, H+ l9 r" m' n
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS37 _# \7 i9 W. m
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN6 I# p U( V' ], e# E
! M- Y* y. g) S8 }: b" }8 s0 C
delay(20);
" {5 m K& _" \: R* n8 E% n6 H c CLR_SCLK();& q3 D* h' j2 ^
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
0 ?2 K- t: ]$ I( h! ?+ z! v E3 Y8 L) a4 l+ E GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
b5 S$ R! [! r t5 e @ GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN' Z: H6 T, l' y3 n, X) q
delay(20); R2 ^+ w) H. S) A" k! X
}- _2 I) s5 U" T4 u" d! N
}
/ I' N8 v6 V: B |
|