|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
/ ]% x" t4 ]# i! |void PSCInit(void)- i1 R6 y q$ e2 o8 i
{
" U; B% [1 A, G' X PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);0 q2 D$ {) q7 Y
}
- I8 j& \! r! f9 u. e) F% T4 H% e" K( N
void GPIOBankPinMuxSet(void)8 u( L5 s9 b) J" }0 t2 M
{
q/ i) k% t; Z7 `/ z // DRDY ------------ GPIO6[14] -- 111& S) T$ y0 e) p, R
// SPI1_CLK ------------ GPIO2[13] -- 46
) E6 C1 m' u6 R" S( d$ B+ Z9 |1 H2 C // SPI1_SOMI------------ GPIO2[11] -- 44
; [9 d! ~$ e- h) v* v0 f3 \) o // SPI1_SIMO------------ GPIO2[10] -- 438 Y4 J" H" ?1 o. e$ ~3 g9 r* l% B
// SPI1_CS2 ------------ GPIO1[0] -- 173 r3 D7 j X% v0 a# `6 ~
// SPI1_CS3 ------------ GPIO1[1] -- 187 P# y3 L) U! r/ G
+ E/ S& B+ D1 T+ r' f7 d8 ?
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
% p1 o" r" }+ T! T8 {. ]& g t HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);0 {7 W- f" _* f) v
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
4 Q( K4 |6 B5 T2 T2 m) W# c9 K- F/ _7 h- m
//DRDY
2 m/ X$ S3 _$ C5 I2 v4 y GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY% z5 n! {' _0 L: E
// CS2,CS3- N( u7 {+ @3 B1 F0 u
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
' i1 ~3 T' q1 e* U2 A+ p+ Z GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
! w- P7 \% \2 L% E5 J //SIMO
$ {, l* j+ M$ I7 K GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO% [; p+ }7 j4 M) X
//SOMI
+ _: C- b: C8 S GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI7 l9 _8 C! s5 i: \
//CLK1 p7 V, v& H5 W6 J" S* M: }
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK4 X/ f% z" L) ]
! M# E' G& \! S! x
// LDAC
, }% G, c- R1 p' e% L GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
2 n4 }7 d- r4 o1 V* s/ J GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
* K" V* Q* f, I" i9 X GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS21 |- p/ o- _* X- Y9 R5 @9 O
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
0 Y6 D) j% \5 n9 q G: _* A9 A0 W GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
; R& Y( z+ G! o' ~}
0 P6 G( }- R4 h2 u3 Q
9 C8 f3 H! l! i" Y6 n. J: v1 d) qint main(void)4 F. C! g+ F7 C, y3 `
{, Q; N! w( a! A7 T. Y
// 外设使能
. ~* B3 E8 h7 e5 N6 m PSCInit();" C4 U2 [. n/ @% m [- t8 y( p$ t
V& v" @# e/ K; \8 E! z
7 u9 t7 `* [. i( k+ |- N // 管脚复用配置1 T% m) M; h5 @4 f9 k
GPIOBankPinMuxSet();
" G& \3 u0 E" n g8 O' Z7 F for(;;) n C) L. I, r R; n! C
{
% W$ m- {7 k e. H- V( d SET_SCLK();//时钟正常输出
8 s, m7 z9 p+ L, E' U) t; Z( p q GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
; }% C. |* {3 p* L1 z) ?: J6 d GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3
7 D6 }" {% l- }" o! Y6 D6 [& z GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN; B0 H8 l, z& [. ^+ c
! a3 r/ o5 B. {) J3 m/ ]/ `* ?
delay(20);
6 @& C- H- y( W* \6 p( r CLR_SCLK();7 R0 E+ m, W6 N6 Z
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
$ p1 |/ S, n$ U6 f GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS36 N9 h' n2 `: q! m, g$ _1 j
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN. ?$ K& U/ s6 \! p
delay(20);
9 o+ J) q' t- H! j- |. D }/ M L' ], z/ r7 Z7 Y
}+ W! G( O5 g3 b7 h/ ~ s
|
|