|
使用下面的例子代码,不能使SIMO和CS为低电平:
. H9 o, r, n7 e" E$ h4 o! [3 m! Hvoid PSCInit(void)
6 X$ K, A$ h5 V' w- {& x" B6 |& ~{. D/ C1 t6 W9 @" w
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
% \, p7 ]5 V2 t5 ^9 S0 Z& U1 \}
o7 ^' T5 d# ]$ x
8 b$ b2 A/ d! n$ E3 Dvoid GPIOBankPinMuxSet(void)$ o% g0 Y6 |6 A4 r: {
{4 r/ G2 m: p/ v2 `4 |/ I" v$ h) i
// DRDY ------------ GPIO6[14] -- 111
" Q1 K/ s' L1 n/ ?2 L8 n- D$ M& ] // SPI1_CLK ------------ GPIO2[13] -- 46
; m L9 w d( J+ D // SPI1_SOMI------------ GPIO2[11] -- 44
2 Q9 U+ q( T/ g6 A/ K" ^ // SPI1_SIMO------------ GPIO2[10] -- 43
* ~5 z' N- ?9 o/ o* ~ // SPI1_CS2 ------------ GPIO1[0] -- 17
3 q8 Y6 ~# X7 E( Z6 u9 s9 a // SPI1_CS3 ------------ GPIO1[1] -- 18) a/ {8 a' C( e$ q& X6 ]
/ l [& S0 y/ A' q+ h8 y; U; x. l# g HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);: m! m7 j& b& {4 Y
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);$ t4 q6 z* s1 P$ F& j
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
1 M+ y( A) M1 | m8 c
+ w- [) X+ I" w1 l //DRDY3 W0 E5 b: G. _1 l
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY: B" Y6 K. n, ~8 P# B
// CS2,CS3+ `1 V% x3 R1 o7 c
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2 L. n2 z, A* H' V
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3- X- f9 k8 F- V1 e$ S5 E: n
//SIMO
4 c, H9 z8 y: m: p" W- i GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO* a9 f* R! I+ ?
//SOMI
0 o, l7 p% n. o- j: `! E GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
& @; o0 h* U3 |3 {% Q+ x5 ~. H //CLK
# L6 ]) c2 z" K; t' M+ }2 i8 [ GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
' \+ ^4 c( N( W% e9 K- I, s# D; X; S/ H' T
// LDAC* Y' s3 e n6 j. _# L4 q
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
8 I: a& o h' Y2 x/ S GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
7 L1 ]/ j V$ E GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS26 X% u% v& W8 f, \
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
: S' J' M" V0 W- N GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY5 b+ [5 S' [3 V0 k6 J M- D
}
, @: F" e2 y; M; ~6 t9 O1 D
' [% X% z; Q( Yint main(void)! C2 X4 {2 b; M
{
3 y$ V8 |* ?9 H4 d // 外设使能% { ?* `0 m. D1 {+ F$ I: g
PSCInit();$ u# T) B4 N4 p0 c
$ l0 f6 k; X9 v# P, Z% G c7 ?
+ o0 O, Q5 Q4 H, Q' [. H- w
// 管脚复用配置# e$ Z; P, J7 W# k" G6 } G; ]
GPIOBankPinMuxSet();9 v! g8 @" _) B$ i$ G
for(;;)
- x, Z5 ~0 f3 v {
5 O1 f1 e; V4 ^( V9 M SET_SCLK();//时钟正常输出
* J, f3 K$ z4 Y+ z: q0 _ GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2$ f% k6 y/ f9 b
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS39 r: j/ v7 q) A- ?5 I0 a% L
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN0 [! d2 | W V9 `5 S8 d
- r* e+ b1 R0 w* h" K delay(20);! S) v) Z# `+ h! C
CLR_SCLK();( A! `+ \8 w o" C
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS39 F, I# d: x6 T* ]9 j
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
* ]3 Q! W' S# F GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN# Z% l' e# ~3 Y
delay(20);) x$ _6 F# }8 G2 g
}
2 W. L6 | }; q1 T8 |* [2 e6 Y}; L S5 U5 i1 w. N* u+ m
|
|