|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
. D; E# `5 {) |1 ~# K$ W7 Evoid PSCInit(void)- E& U7 Z5 ~, o4 P8 m# r
{
2 I6 g/ }6 \$ ?( w* E; z7 w: x PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
9 Q2 p! g, o+ { g4 B( H7 n}
# R; X$ U2 X* F) d# v5 {+ @" K
8 S9 m. T% e/ u/ t0 Evoid GPIOBankPinMuxSet(void); D) N4 m! W4 T8 g! m3 [
{2 L& Q( L5 t) X3 Y8 |& z
// DRDY ------------ GPIO6[14] -- 1118 R1 o/ T6 V3 \- @
// SPI1_CLK ------------ GPIO2[13] -- 46
4 y0 E4 I, m! n* m7 a5 M // SPI1_SOMI------------ GPIO2[11] -- 44
5 s Z" `9 e3 C0 q // SPI1_SIMO------------ GPIO2[10] -- 437 H9 c6 [- B$ ]4 A/ p
// SPI1_CS2 ------------ GPIO1[0] -- 17
" v: s+ r% a/ v& k8 l // SPI1_CS3 ------------ GPIO1[1] -- 18
: @) O3 Z! _* u
9 t! x, ^- A! |' `. d+ { HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
! O9 I6 @$ q% ?. f8 J- O HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
' V; l! ?. |: D6 n0 f9 `% ~$ M HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
) z5 \# X. }/ K4 @& ?& ^, \$ K1 Z, \4 u w8 e" p8 w
//DRDY3 E$ ?4 [: V0 M1 Q6 a; a( z
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
" a7 c' r5 I, u3 ` // CS2,CS3
3 C% |) }: y5 O GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
+ x! f7 D$ j s* o9 B% b- h GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
& H% u5 N/ |0 ~+ S6 f- d1 i //SIMO2 r! K) ^ g& s- u% ^, Y I
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
4 D) n8 D! i& T //SOMI9 W/ ?0 g6 b/ A# l
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI& \+ H& O6 N9 D6 Z3 d: T* c
//CLK
2 l6 `9 h: G+ ?% ^ GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
$ H- _. s1 d- Z6 j1 `8 ^$ G
0 W% i, K" \+ k- X // LDAC: T6 D7 X2 G7 W9 f
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK5 l' V) @5 P |
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
. ?$ f& O+ B0 Y( S& O GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2( o0 Q; t1 U& z( M
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
' q1 B% w4 K; w) Z) ^) D GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
8 Z" \+ c0 ~# k$ Z7 i) Q}7 R7 i/ |5 l/ ^
" ?. H& }$ B3 h n: r# t( n9 l0 {int main(void)- I: Q9 d! h( c/ T+ M! A$ V
{: u" I1 n5 z$ g$ O, z
// 外设使能 T: M& n9 A5 Y/ m! i
PSCInit();
5 |& _+ _/ i; l% B) W4 a# x) G6 H0 ^- j5 X" A* M; _, _
7 K( H/ ~( a5 q/ {, s& c
// 管脚复用配置9 h, v: T9 Q: Z* |) Y9 x
GPIOBankPinMuxSet();
8 ^ G6 |' F3 u for(;;)
' f* `; d' t% z {" S3 ~. ^( L5 d/ K3 J+ A
SET_SCLK();//时钟正常输出
0 y! G/ M$ e& }# C8 [ GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2$ Z+ F( N) J- Y' m9 d1 {
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS37 t7 v9 ?; J$ X) Y! A" w! W) \2 {( y
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN+ w& @, F; o2 f6 B6 o; E
* r# K6 B6 U6 N' A
delay(20);; G1 T: e- k& d4 q
CLR_SCLK();9 }& K: Y/ I0 H) U
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3% A, Y6 M5 I& x' t6 G
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3! g! p0 p* F9 x; y" s2 l" }
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN% f) i! D5 `- f+ ~
delay(20);
0 u8 ?" L! f& |9 J" V6 d }
6 w( P8 c5 p+ d# z8 w! f}6 Q8 g2 Z. `4 v% u5 T
|
|