|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
+ W4 E7 ^7 J* L3 D, [% _void PSCInit(void)
H) K# r& e! B2 A{
$ }" N' A: L9 } PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);5 _* a( A0 f& m0 `/ _9 k6 u) ^: Z T6 U
}0 \. e! m- s2 i) K9 @5 @) _' k
) T" F: h& y# ]) O& t4 [" Zvoid GPIOBankPinMuxSet(void)) T/ F1 z7 p( D
{
! X: m, z4 g( p/ E( H! f* M/ Q$ H7 y // DRDY ------------ GPIO6[14] -- 111
- Q7 J, e) w7 T: ^ // SPI1_CLK ------------ GPIO2[13] -- 466 x$ y4 b3 B4 W+ v/ R
// SPI1_SOMI------------ GPIO2[11] -- 44; {: s7 U2 C' j
// SPI1_SIMO------------ GPIO2[10] -- 43' O+ W* f5 h. j2 y/ ?
// SPI1_CS2 ------------ GPIO1[0] -- 17
9 h. e; a% [' E2 a/ Z% f: D% e // SPI1_CS3 ------------ GPIO1[1] -- 18) y8 e" ?$ L* }) Z t5 l# a
+ P- T; |) ^# Z- K HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);% o* u) X6 f; Z9 S; C1 X7 e
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
6 ^ H: u; j( |& r% L9 S) {: d HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
& U+ R& c" [6 M" Q2 E0 A
/ o2 l1 R3 \. m5 v //DRDY
( R. p7 j% t$ Z& |& `2 U GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY8 ~' j8 h8 T4 {9 E8 A. V
// CS2,CS3
7 ~* |$ J: Z) m7 t GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
' @% M$ g% r F/ }( U GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3; k7 x+ G0 `+ e2 m
//SIMO; ?4 ] _4 b$ ?4 O+ A2 }
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
6 r3 b4 s3 i( t8 s3 E5 { //SOMI. O) ^1 l/ x% y2 T, X
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI: c+ Z! _; p- g5 m" n
//CLK' q% E- B5 o$ l2 O1 Q3 e; ^5 ]7 Q
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK+ t& _% M: l# h! C% M) u+ R8 Z. S
/ g M+ B8 y* \& P6 W% i) D0 x( e
// LDAC7 S" I: Q, @ F ~6 \% m
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK5 {# O+ O: S4 b. Z/ M
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN4 d- M* ^! V1 h* z3 Z
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
4 i& b5 g- g, e m5 d K" u+ q GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3' v8 r! {4 o2 F9 f
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
Q. {2 V! |; e/ }6 V4 a( c}
9 x7 U `, U1 J3 I, ?9 c/ A3 ?! a' Y: f5 h$ t/ s& i7 R5 F" i6 P! k8 X
int main(void)
- N. u& s8 |! g0 H7 `+ c{ n7 V# r4 H& I- b
// 外设使能6 K9 u5 s! x9 O. P; `8 s
PSCInit();" z9 {& f2 U5 {7 j
# g5 h0 j) s% \" c
3 t% u/ U2 r. b" z. {% B // 管脚复用配置
) v% n: }+ ^. \- S; g GPIOBankPinMuxSet();$ w3 I) S* g" J4 z; n
for(;;)6 ^( ]" {8 ?7 e* W* Y0 N$ x5 t
{
3 E5 f" e1 A; }. ~3 ]$ B SET_SCLK();//时钟正常输出
$ h Z; I9 i2 A' ^( c GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
+ q1 `' q; L! R GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3' N3 I, ]0 M* p4 H
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN; w# O; I7 ^4 y( k) K
* C2 V" C4 Y2 N6 P7 g0 E delay(20);
2 @7 o6 D; V G! b% d- A, f CLR_SCLK();$ d0 n. v! G; o* r K
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
* K) _' [9 ]" e N8 q$ d GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3, A9 I% w1 {1 M/ }# X
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN$ ?3 l/ r; M1 z: L) W5 g. S
delay(20);, t6 U. z1 [ {9 X0 e8 P
}4 C/ M# t) X% ~$ n
}
8 Z( n' Y5 E% p" L' y4 K3 N1 V- c |
|