|
|
使用下面的例子代码,不能使SIMO和CS为低电平:, n& P8 ^7 v q1 A. I7 U
void PSCInit(void)
$ J+ A, y5 _, G; V: Z( z" |{
{" C- k I. e# p6 Q* e- [' w# h1 M PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);8 [/ A# U# X) h3 _0 R8 i
}' N4 ]7 g7 Q3 {$ k2 a
( t3 q; f) V( H* H& Hvoid GPIOBankPinMuxSet(void)9 k3 z/ P- e/ \) t7 U# L
{# W1 e0 \3 b& I, G/ b
// DRDY ------------ GPIO6[14] -- 111, S9 B3 Q, E2 F1 l2 ]: \
// SPI1_CLK ------------ GPIO2[13] -- 46
- Q7 K$ z8 M' q // SPI1_SOMI------------ GPIO2[11] -- 44! M( T- j! v+ w0 P3 w
// SPI1_SIMO------------ GPIO2[10] -- 434 S5 G) Y- T: d& X% D6 z: F; ^6 [
// SPI1_CS2 ------------ GPIO1[0] -- 17% c. k! J' G! T# `+ U
// SPI1_CS3 ------------ GPIO1[1] -- 18$ ?- B* P" R# }4 O
' b: h% l. W2 U# r
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
, y+ Y9 M2 C4 F( T1 a3 N$ r' h HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
5 F5 S' m1 |* n HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);' T+ E- B( s, @- j
& y$ v2 y3 D o, Z, _ //DRDY
# {7 A6 r/ `0 D! q- ^ GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY2 o4 K6 X$ @" a+ y! x& k
// CS2,CS3. m h5 ?2 d7 x4 m6 L7 I
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2: p+ e6 A L2 D V* \
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
' G5 l2 m* [6 L, }: ~ //SIMO
# g) v2 h& X/ C0 j. M3 t, v GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO4 a3 X( Q* y S. G
//SOMI. y. P: a N0 M. R' b, s
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
+ ~0 E# a7 q& R. p$ s //CLK( W. H+ H& Y" E& P- f. P
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
% t& _! ^8 D% z" `1 |; N
4 R' o3 i, D$ H2 |& _0 Q // LDAC
0 n3 A0 a# f# K! \/ F* q GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK& m* s4 L* g5 N# g: d" `+ O6 [1 A
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN, F2 B; @# U" r0 A, T0 U7 R
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2) e6 a4 k' w; d) ?, V/ i7 q
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
" X9 R: u3 R4 n# q) J, g- |1 {/ b GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY* a" l$ s0 H% L: B
}
3 k& f* }" m& J2 o6 u* B' f, f
; y0 r0 K; E0 l4 e# x; {$ qint main(void)# V \$ D: `: P+ p7 Q: s' O
{
) ~* `' g* N5 x" G! h // 外设使能$ Y0 ]$ B* T1 c# ]4 K" o" [
PSCInit();
8 l# G' n# B A, c$ a+ O. J" z/ g/ Z! ~4 c0 M5 T% w
7 x7 U9 H* ^* p& I2 l! M$ Y
// 管脚复用配置) M: p. z1 p0 x: Y8 b& S* a+ k
GPIOBankPinMuxSet(); l5 w2 p- _ ? h4 M+ E& p7 s+ C
for(;;)
$ w% x! T+ S8 g) l6 y, O* g5 @ {
; S v9 l7 k( ?8 L0 O6 c* C SET_SCLK();//时钟正常输出' G* Z9 W7 P- }8 }* X5 e1 _
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
( L" e( d' P+ l/ W- l1 f GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3
5 P; }1 v: g8 n- \& z- [6 b2 t GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
% t1 |0 u* C0 \- Z& R, S8 j" U1 B6 S
delay(20);8 ]% Y' z8 s- p2 p! _. J4 N0 d% w9 k
CLR_SCLK();+ C& ^+ [( x# Y7 D+ v. ^
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
" F7 I: g0 n0 w. r1 W- {+ v7 n0 u3 F GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS32 j" }: U1 `5 K9 U3 F
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
- E& x* O# |/ `5 e9 T5 I delay(20);
% q3 ~ z7 j$ ]+ Z, ]0 {) P }
6 h* @( |, m h9 c6 z* M% [}
! k& n) {' d. q$ b |
|