|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
! B5 K7 ^. p- N( j; {void PSCInit(void)9 M' w+ {6 x9 Y% k; m5 I% n2 A
{+ }8 v; U1 f( c; m8 D3 Z* \$ W
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
P" ^8 x* v" u! R& ^& Q5 k}
$ |6 ?( j' n, { t" Q* W* J# ~5 \" f( m& d) t- n: G
void GPIOBankPinMuxSet(void)) Q8 T4 ^" @6 n0 e3 Q0 O
{! V+ [9 a8 h8 e
// DRDY ------------ GPIO6[14] -- 111% l; u" {" ~+ X; R/ J
// SPI1_CLK ------------ GPIO2[13] -- 46/ X$ Y. A8 X* X* D/ `
// SPI1_SOMI------------ GPIO2[11] -- 44' m1 i _3 H: K3 F& d! O
// SPI1_SIMO------------ GPIO2[10] -- 43
$ Z! l9 B3 ?" G- b9 I( G // SPI1_CS2 ------------ GPIO1[0] -- 174 h1 {+ N" @7 L1 A4 ^6 x* }" Z$ G$ b
// SPI1_CS3 ------------ GPIO1[1] -- 18/ K& I% i5 @( r& b% y. a V, M0 t# ?( O
; _* O& @# e, c4 o- F k& o HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);' T5 E7 P" A2 q- L+ T, ^
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);- U; T5 ^7 a; h. N5 w; G+ H
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);( O5 d j6 ~7 d4 H
0 }9 N% ~' ]. a
//DRDY: r' {4 z2 P+ P# F; g% g2 e
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY9 w# _ J4 s# W
// CS2,CS34 D/ U, f" W4 f& ~0 S5 n- Y
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
# }* q5 e: I2 {6 ] GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
( M4 s& c4 E& C' u0 h, x //SIMO! f# J0 @6 Y$ M- d( {5 W' u. r: H
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
0 x* {4 a. l# c' w# z, H //SOMI
/ Y, P5 k# t3 x6 v+ _* J GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
( |" N* ~, P) K: V* ]& e1 ? //CLK: y R( v! B" w0 f1 U6 y
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
5 e/ B: [, H: r# b* p9 e! u* G) l; _( c" C( D% z
// LDAC/ r6 R3 o4 B/ U8 {& L* k
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK% T" i6 G! N& ^! ]; i7 X
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
- P2 O9 Y) |* S, N! E8 v GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2: i3 d0 @0 u; J
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
2 I+ Z; [' G! t, h2 C1 g& ?3 H GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY0 ~: I5 |; V7 {1 R' T: k) \
}
3 }$ b2 k; c% n) t; X
3 R) P& x& [0 L& |$ K' Wint main(void)
/ v" I _; s; S- i: B8 F{& m$ x/ y. K# ?5 W) g
// 外设使能% _+ E' R0 _$ D3 a/ a1 }
PSCInit();
3 c2 r- h$ H ~) _! m, A' ?# ?' U# d1 x6 ?: x, H4 S
4 y) E5 e9 H6 o* q1 L9 y2 `
// 管脚复用配置( F; F4 F7 D2 e6 }
GPIOBankPinMuxSet();5 e& `9 z7 X0 E: w1 H/ m( u
for(;;)+ J1 n. A' S! x( s! q, J5 y
{
9 U+ \; A5 |5 q+ B8 V9 d SET_SCLK();//时钟正常输出% R4 e: ~1 b. W' B- B* J8 \
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS24 P! c3 }9 t. X' b" F
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS36 {" T. ~* C2 s8 Z( r- M
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
5 r* ~+ A+ ?# p1 Q/ @5 N% C* a1 C
* u! o0 J( E8 X" r: ] delay(20);
, { G6 a7 Z% g+ \ ? s CLR_SCLK();
3 ~3 p, R6 d- @8 q; X GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3& e1 K9 @, U3 \$ x' v3 x% t" v
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
; w8 {3 a$ ^$ r5 u/ N. k GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN6 l ~, l i- [# J( S& |
delay(20);
3 ` ?5 l' O$ t }
* ~2 p7 _- P7 [. Y; B' i6 `% q}( y. @+ R9 q9 v" d1 {2 g4 |) Y
|
|