|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
/ j3 m6 H, Y! D. g1 W$ \! \void PSCInit(void)
( c$ E2 i6 } ]1 ?" [1 t+ A& N! E{
9 F; M, g1 {* N3 D6 h PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);9 h/ O5 ?' O, X" g1 L+ r
}" r& x6 f, r7 b2 H9 o5 j. Y) n
1 f" d' e' ?5 R4 T2 lvoid GPIOBankPinMuxSet(void)
( k. z: s4 ~1 z. F) j' y; O; ~{
* ~- ]0 Q$ V R! R, Y: D6 v // DRDY ------------ GPIO6[14] -- 111
+ I& S! O t5 n* d/ c // SPI1_CLK ------------ GPIO2[13] -- 469 E! L# a; Z/ ^: r3 b+ O# c
// SPI1_SOMI------------ GPIO2[11] -- 44
% r" z! f7 Q2 p: _; Q // SPI1_SIMO------------ GPIO2[10] -- 43/ W% Z% Q2 n! z3 b- w- y" C8 T
// SPI1_CS2 ------------ GPIO1[0] -- 173 ~% {, A( L7 S8 r
// SPI1_CS3 ------------ GPIO1[1] -- 18
' c: {9 x& i7 q. v! `, C1 N" @1 P- t
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
" g3 t7 k& d* w4 Y HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
9 |- o9 p4 R% A# F* ^* t6 H HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
' E& R' z6 @/ H5 P, R2 D1 T& i% k
//DRDY
4 W5 m/ l) i2 L- q" ~/ j GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY
' L$ T/ i2 v" u5 u, `* C // CS2,CS3# x% O0 F* ]3 N9 T
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
. U y/ b' ^# E) [% y% k9 H1 r8 v GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
! }2 {. K% o. L: U6 G% O //SIMO
1 K k6 p' G& C: H GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO/ X9 H# K5 r+ A# f0 I
//SOMI S* r* k4 _1 e
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI; e( q2 e' F4 I
//CLK
2 `" l0 ?1 x; K9 C6 i GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
8 ^% F" V1 x! o A4 _5 j
3 O P% R. `( U8 l$ }, Y // LDAC
7 u% q* G5 @' I h0 Z1 z1 d GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK' `- x- D; U+ `0 p( f
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN# M( E6 y. V1 o; V) ]% k/ [ q% |- M# n
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2- }7 l) W. k" D: K4 [' q( |
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
- J* b4 Z) z& y2 _6 V1 V: c5 ` GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY) z* Y/ T8 ? c" F* A
}" Z9 p, a6 i; p
4 y+ N! h8 ^: T# ?, S4 y6 H8 @int main(void)) @& Z n; Q" s. n' X1 l1 `
{# z# c3 x2 |( j
// 外设使能, d8 t; t& c7 C9 Y2 \; y
PSCInit();
* A- \4 @6 W+ g' q
2 ~4 R# p3 h% T3 {7 o5 M, y " ]2 S1 S6 }* k. @1 V4 p8 B
// 管脚复用配置
9 m) m E/ ]2 K7 s4 i- a! Q GPIOBankPinMuxSet();
8 {6 x4 V0 w, i) Q* p6 T for(;;)
0 O+ [: N. n! l: E2 I {
1 c9 `4 Y( k/ X$ g SET_SCLK();//时钟正常输出8 r, i$ z4 }% H. Y2 u. g
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
: `5 D. L2 Z8 i0 K+ X GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS39 I# _. S* e$ I$ H6 L, ^! j, i
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN! O: @+ b4 M! [7 b/ `
4 _- s+ i6 k' @# j delay(20);3 X! p7 v8 g; l8 J: S4 Z4 M# J+ ]1 j
CLR_SCLK();" |6 e- x; m/ ~1 D% M5 S3 ?' j
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
1 `8 C3 V4 s7 i, d1 z GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS36 Y, `3 V4 q( F/ ^) y6 o, y( x: D
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN* A! J) f8 O7 ~
delay(20);# ]6 a5 q- x3 X8 @# v
}; J4 L: t0 @' `
}1 c' Q& x% x) ]6 d: D0 H$ p
|
|