|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
2 f5 H7 ], _2 Z; J" j) p% }. Y& P( svoid PSCInit(void)
1 U% `7 |: ?1 [' U+ [# F( D2 p{- Z' k7 F2 V/ f; N4 I2 J
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);. Q$ W7 `2 O* E. {4 p) L7 I
}7 e* l! G. t# K
8 U' {' f7 X( Avoid GPIOBankPinMuxSet(void)
5 L" v' l' d7 ^{
5 o' S+ \: O# J // DRDY ------------ GPIO6[14] -- 111
+ V% p Z% y9 B2 @- Y( k3 S // SPI1_CLK ------------ GPIO2[13] -- 46' p+ j# K/ S5 ?( E5 ?
// SPI1_SOMI------------ GPIO2[11] -- 44
1 @. A/ x/ H0 O // SPI1_SIMO------------ GPIO2[10] -- 439 ~, N% M, r" A% u3 l4 n0 e
// SPI1_CS2 ------------ GPIO1[0] -- 17
6 O: @' u% k. l" F5 s // SPI1_CS3 ------------ GPIO1[1] -- 18 }- x* S2 h$ I& I: A+ s1 g, e
2 D6 z3 @7 J1 s# _# F0 r7 y4 Y, ~6 X3 T
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);# y: |& `4 o; p, t8 \ h
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
4 ]2 k0 s( W7 [ HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
8 w# Q4 O4 A/ {1 s8 y: n) b. |1 I! W1 L5 @+ ^, h) F
//DRDY
2 D* o" a" s5 J5 X GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY7 F$ X0 A- N; M
// CS2,CS32 Z9 e% r% F; h& u
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
$ E1 K1 S; R. V* }: t I+ g; m GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3# D+ p* _; E& G1 ^# ]3 B
//SIMO
# q/ N* j# F+ L' ` GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO+ k& Q- M3 _, w
//SOMI
% I/ R2 L: W+ |' s GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI9 ]& w9 i1 d! C
//CLK
. Y* u7 _6 y. K) |5 A GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
3 G4 f# X- f, |) M- d1 V
: Z- M" a8 ]7 X3 D5 O // LDAC
' v+ x/ s4 ]# d( o. P$ r/ H GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK! H# i' u# C8 m" u% N* z# u* ]0 L3 |
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN; C3 ?2 M, g+ G+ J t4 b5 m9 b
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
+ }- n- F9 F4 E9 i. ^* b! P- H4 s+ ` GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3/ }; a* V' g6 D2 x& j" d9 X& u
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY' z: x0 Y/ R9 z
}
. {' c$ [0 g9 r! P5 u' o; g; D, j
3 c; i/ N& Z' Z+ }5 h! ]1 {# J$ Qint main(void)
- U; P! d4 f* v{
0 N7 f) G; P( e; ?) |, P- c( f // 外设使能( a* }' Z% O# J3 l
PSCInit();- J/ s: s' y2 f! ~
2 I2 R5 C/ b f, s" w# Q; ^) i
0 w; U/ |* d/ ?3 {0 E6 D E, `( p // 管脚复用配置7 `2 O: k) r: Y" I( q/ A* r" {
GPIOBankPinMuxSet();
0 h6 ^4 p* k E" { for(;;)7 B2 |- P: {5 O& X
{; Z3 p: e9 Q/ [% R
SET_SCLK();//时钟正常输出
. e7 F! F# t0 p& A2 U7 R& d2 Z GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
. s, P: G* k" {$ u2 ~2 o GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3. }6 q# z8 i$ [- H( c" I; ]2 k9 _
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
. t8 D$ h. S% ^) @' q
9 b/ X, s. L# }; S \; y( z) _ delay(20);
& i. b! a& b0 e CLR_SCLK();
2 H C7 u) p: C- i' K; @ GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
. O8 O) s0 Z/ Q, ] GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS38 e" }4 `/ N$ m
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN" ?' z2 U) A' |( ^' ~
delay(20);
# f: | N) h" _* H+ K }
9 s, l4 Q/ s- X. g8 f& G5 h1 F}
( u3 M( e* V: k5 f/ ^ |
|