|
|
使用下面的例子代码,不能使SIMO和CS为低电平:5 B3 d' M) [4 v+ U" v3 s" _, E
void PSCInit(void)6 a7 D# p3 `5 {% E: X3 I' p
{: R" l! Q, b/ R' r* {# v" V
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE); r0 d4 v7 d! s$ k' B
}- S4 Y% |9 Z" b, r5 S
4 k5 b( d5 p* H8 y2 {( v/ Qvoid GPIOBankPinMuxSet(void)
; d+ G% g6 h$ O- x{ H# U1 S8 [& n5 }4 o7 C
// DRDY ------------ GPIO6[14] -- 111
5 ^2 h: Y0 v8 j# M `& l // SPI1_CLK ------------ GPIO2[13] -- 46
2 L; W* z' ~' j9 I // SPI1_SOMI------------ GPIO2[11] -- 44
! n( R' I U4 Q // SPI1_SIMO------------ GPIO2[10] -- 43
7 x9 G& _7 p1 B: J // SPI1_CS2 ------------ GPIO1[0] -- 17
$ ?2 l) }% h6 o) u' b1 u // SPI1_CS3 ------------ GPIO1[1] -- 18
& r) q+ P/ N9 {3 t, j: [/ j' X
8 t) U8 T$ E1 v( j, ` HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
2 B$ C- O9 p+ u' B# |4 q! x7 }7 t HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
( R g+ ]+ W- u: q4 t HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
2 w! N3 m: H1 z
3 x g5 T6 T" T3 S' K2 h( I% T6 P //DRDY: n3 t# G! W7 L- V( Q5 T: {; q. L
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY% E6 v& P2 n1 ]9 I v, k7 F2 O
// CS2,CS32 Y% J& \+ m5 \ y' r& B4 J
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
4 ~: @+ Q9 [' O- I- N GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS35 e& T+ X5 J% O
//SIMO0 {) v; n! U: H3 u; L# p) C# A
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
: l6 S ~" c& X //SOMI
9 C, M0 n7 i/ u7 {/ S GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
/ @4 G( w' A2 Q) j. r' Q9 g //CLK6 R1 Z& @! R8 |6 L! J& K
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
: {9 L E' b) T4 }8 _$ Q' m, |- G4 B* n& P6 Q" d$ a
// LDAC5 A0 r; D* V- j, n) a
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK0 e/ ]8 X* i( ?; a* D9 _" X
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN& C K) R8 c. l# \
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
; O. |3 X& \+ `, I GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
0 b; f# v9 @- \# d+ ]+ H GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
+ a$ ^' `' l4 l7 Q9 u}3 W# d2 B, t: U7 m
+ ]* I+ E6 X/ D3 f% h. p5 v
int main(void)
+ p, ]) j# b7 l* N{
/ J$ H% [0 O m" Y // 外设使能 j. k2 Y6 a5 ] ~# ]: y: R
PSCInit();
$ Z: S6 X3 i1 S0 H; D- {( J8 \" O
8 `" G! J4 v) J, n& v, {- U
// 管脚复用配置/ M% ?; k. K7 R; T2 F
GPIOBankPinMuxSet();, }5 l, x+ F& M& x3 e' _, {
for(;;). U) [8 E3 I$ Z" w; B3 d0 @$ D# [
{% B1 ]6 ]6 S% s* f7 t9 a% X: S
SET_SCLK();//时钟正常输出
, b8 Z1 g+ U Q1 Q/ c! L GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
9 K4 d& E- c8 c% O7 h% \ GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS39 g y& x5 |- w
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN& _, n! p& _9 Z- o, v
: C/ W- B! W) {# s" Q delay(20);
2 z, F# d& Y) `2 A8 F- ] CLR_SCLK();
& E# A& ~7 m" o& c b o- ~: n+ J1 L GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3/ @4 ~/ ~$ c# l/ v _
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3; q, o1 r: p" M: [$ k
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN+ W# I' D+ v d" G9 Y
delay(20);
3 |5 Q% K2 v% H: Y }0 H/ K% [% n! g4 ~
}
; s& B5 A9 w* U+ P2 M q2 u6 P) f |
|