|
|
使用下面的例子代码,不能使SIMO和CS为低电平:( Z0 d4 m& o& K& o! f% h* ]4 I
void PSCInit(void)2 o# ~0 _7 y" l
{! v* N g) v$ C9 ?( L; o# r0 {+ t4 G4 N
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);# ~/ R4 z8 c+ F7 r
}+ c6 g9 y; y2 {- y1 s8 s( g
) Y( N2 X( K; s B4 k3 Uvoid GPIOBankPinMuxSet(void)7 N) Z2 u* S/ R7 ?
{
$ _) E& c# s* d) y' \ // DRDY ------------ GPIO6[14] -- 111; J! t0 H- |7 L6 X$ y1 ?
// SPI1_CLK ------------ GPIO2[13] -- 46
h6 ]. P8 f e( f3 J. N4 F // SPI1_SOMI------------ GPIO2[11] -- 44
/ Z7 q% U" B' D" N' e; H, |) \0 ^# B // SPI1_SIMO------------ GPIO2[10] -- 438 V5 A! `: I0 E8 ?
// SPI1_CS2 ------------ GPIO1[0] -- 17
0 }0 ?/ X( l& Y$ u' j // SPI1_CS3 ------------ GPIO1[1] -- 18& _3 O: i' h; T2 l* A
; p* Y# }: ?3 e& g, }# T
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
0 z }8 W% r' v4 m: w- e HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);; f8 N0 w! a8 j# z6 \. i& c
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
. j" A7 }8 P1 ?8 w& j. g, d
V& F' ^1 s+ p; V: l0 m* o. M+ K, ? //DRDY1 H* \. B/ U6 K
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY( V* I. O" `' e$ Z
// CS2,CS38 `' B& H3 @1 {; u
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS23 M4 {" y- V% P# p6 N4 Q$ a
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
/ j- D% b. ?) Y% G* \ //SIMO
/ X# X" t" X, v! G( `0 @) ^1 \ GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
. j' U1 [% T( p n6 J2 R/ k/ x //SOMI, i7 |- X& M+ c
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI0 w% q& i3 O+ U# ^$ K
//CLK9 s, e* c! A8 x$ R
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
* i* W7 Q7 [' R+ [1 a) |: R. Q+ l# |, w4 Y3 j: X
// LDAC0 u5 l: E& ]. ^0 {* o0 x' D
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK M# a2 e8 B. F) F
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN5 O. {3 h1 a& z l0 I$ V" A
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2% V) J; k' x: H! W
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS36 Q1 f0 T) H1 {( a7 C
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
1 @7 E* \2 z" p& v! E}
8 K9 y9 x; O7 O6 c* B! t" A" n" l) w) P' k: f: \
int main(void)3 S4 V, q h8 M3 n
{
" c) L3 X( \- r' @4 c3 E // 外设使能
2 Q |) b# J' a: Z$ x/ P PSCInit();" W0 T s2 W2 l- I5 u$ E
9 d, }- C: r0 g, A) c% R! R- M6 h
. i3 X4 ~( e! V2 x // 管脚复用配置
- u3 c. R: I& F- T3 w( b3 G, [4 \) u GPIOBankPinMuxSet();
; h/ g: ~9 ~9 g1 W" u for(;;)( Q# l% l Z! S1 V& d
{
4 y9 e; V7 B' U% c. [* w. G SET_SCLK();//时钟正常输出9 E/ ^+ n/ \0 f2 D& K0 Y5 t
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
9 N% H2 M9 Z) `4 c' p. I. c GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS30 q3 M) Z7 I/ |2 h8 L7 V9 {2 v; v
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
4 e4 ^+ [) ~: o; E) f' z# b
9 g' S- M. C9 M$ b; V8 Q$ B delay(20);
3 `! E5 k7 `3 G& ~1 h) N# C! b5 s, j CLR_SCLK();
: ~ x. R- r8 Z- y- \0 r5 w7 Y" w GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
) _ U3 _- V- d; f. Y& W r4 A+ | GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3* I5 h" I1 y: a* b$ E- ?
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN# [& C6 n m- {6 o2 f
delay(20);
" p& [) ~! C) y8 {1 M7 C }
! k2 X/ `4 E9 I& X2 f; e}( q4 F8 ~4 C+ y3 _& R- ]
|
|