|
|
使用下面的例子代码,不能使SIMO和CS为低电平:- B! H W/ c, {& v9 h; |) b
void PSCInit(void)
; @9 P7 R1 l/ `5 n+ R{6 ^" }- d& P- h! [1 Q
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
) ?* z& P# i5 K: ]}, K) v- o$ t- | S
* U0 G ? v2 pvoid GPIOBankPinMuxSet(void)
2 O! w; W8 {1 M) ^; V( u{
* w% n* x" T, J4 ^8 m6 k0 E. ` // DRDY ------------ GPIO6[14] -- 111
# Y* c- f8 [2 L: a, G) }# _. w' g // SPI1_CLK ------------ GPIO2[13] -- 46
+ f0 K1 D8 K! y // SPI1_SOMI------------ GPIO2[11] -- 44# A7 s7 A8 o1 ?$ W9 e
// SPI1_SIMO------------ GPIO2[10] -- 43
; T5 k! m8 \* L( v5 X) \* ~! I& f |( k // SPI1_CS2 ------------ GPIO1[0] -- 17- p& g+ }3 T: u8 i: X
// SPI1_CS3 ------------ GPIO1[1] -- 18
1 y2 j {# g8 V- b5 ], V$ g! O0 `7 Q/ m
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
& K; [9 A/ T& j+ s W0 B0 V0 i HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);6 w' e# c# h) k# X! R
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);2 z4 i7 }+ K: ~, t1 t e/ b! z9 F
: E$ n1 [+ |# b //DRDY
- |/ b0 W- {# p$ i GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY/ A1 ]0 S9 O& @0 D
// CS2,CS3
& |3 q0 L8 n% Z( v3 p3 P% F9 Z6 P GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2* w9 p& m- s6 Y* \( s9 ] l
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
' Y. X; g- L: U% X A; n' u7 l //SIMO6 |: q+ J% k! t% R9 o0 F
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
. P: @; J8 K; m7 _4 j0 B //SOMI
8 Z$ `8 W( ^4 _9 l( [6 T GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI4 L( _& v. {' U* q" [7 l3 i6 b
//CLK
) N% K& @# q& j$ g GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
; R, ^6 e8 N" u: S% Q8 t- W9 d2 Z# j* ?% }& t q3 l) q
// LDAC
, W4 Z! U6 L4 X1 {5 }- @ GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
8 j1 g# h8 [# f' T v GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
# L1 R) U* J# Y2 m# D8 L GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS27 D% h* a+ F/ R4 V8 T
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS38 i, L$ u! W8 B9 o0 ] k8 p
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY/ i) P: a8 e' D+ H
}' [' q) }. U1 b
+ ]) y9 ?& D; _% I/ f* `3 {. @/ Iint main(void)
8 d1 R# w. W \% Y{" d% B& j5 q6 d; {8 N
// 外设使能7 C( r) U( u5 Q
PSCInit();
% f7 g' V& o( H- [5 E4 e+ y; }9 G1 s/ U+ c. H
7 J1 \( b4 h, l( b) z& d* u/ {
// 管脚复用配置
. B3 d0 {! Z" d GPIOBankPinMuxSet();
\( N/ s6 z4 }" a for(;;)# i$ E3 m2 H% |
{
' ~; Q' j0 M- X: D( w SET_SCLK();//时钟正常输出
0 v; z. Y0 _# c$ e: X GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2$ a( i! C/ Y' \
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3" o4 |) m5 ?1 R; n4 W! [5 @0 I, W5 E
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
, n. I. K6 H. j; c' E% J
, p; O/ K5 t( [* i" M delay(20);
' t4 \- i/ Z _ CLR_SCLK();
) N! l' g. T# M+ q3 ? GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS31 g3 I5 ^0 k: @# _2 B
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
+ b6 C2 |& ]! m: H# m GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
2 P- j) l7 I/ k' a; C) L delay(20);' `, V* W" a0 v2 s" m8 r' j: \
}/ r3 U' Q9 @% C! ^
}
& @. N/ L9 r, L2 N1 ~4 n2 t |
|