|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
0 c3 u9 s& h6 D g& W# o V2 T Yvoid PSCInit(void)
5 }% `7 h3 O/ }% `/ M3 ^{6 e1 v) C+ e% k' O1 V5 H1 m
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
* H3 Z* n7 _, B) k% U& P}
, H, A6 K, s( ?$ @9 c1 j
( m& h# h/ v3 L& B4 ^/ svoid GPIOBankPinMuxSet(void)0 V! V; T$ w$ ?3 i
{" m3 X; l3 A) z" ^, j; h \
// DRDY ------------ GPIO6[14] -- 111
4 u K, L. l3 H8 W& V // SPI1_CLK ------------ GPIO2[13] -- 46
! ]$ X) B! p' j! ~ // SPI1_SOMI------------ GPIO2[11] -- 44 |) S' I3 f# P$ Z- r7 H3 m0 H1 W
// SPI1_SIMO------------ GPIO2[10] -- 439 J7 H1 r$ s8 y+ i6 U. z
// SPI1_CS2 ------------ GPIO1[0] -- 179 w$ ^7 O8 R. v& i% ~/ D. Y
// SPI1_CS3 ------------ GPIO1[1] -- 18
# W; j% e5 r5 ?8 Z. y' R8 {, ^ w, p/ K2 o3 k2 Z
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);. i2 D4 q5 Q5 m( g( L8 N
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
% d9 [( u" s- a3 U @ HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);& m5 k7 i$ j% U# n
, { y3 ~8 W, t( {
//DRDY
& z1 \5 `9 c9 ?6 ~ GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY& X" `7 C A$ u$ {' K8 L
// CS2,CS3
% a {! \5 L; A) O/ m* T) w, [2 \ GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2% ~/ J3 |6 k6 {4 r4 E1 ]4 n3 V
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3! b" ?5 X; f, L# d
//SIMO
7 ]- h7 X3 J5 M' m, w. B GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
+ K# y8 y5 @2 E; \$ F& h //SOMI. }' n+ r7 x7 q
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
; T8 V9 [; b# O+ X) a% T //CLK
a4 `0 t4 b7 | ^+ \ N GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK2 ~7 W) F; p, B8 A
! O& X8 K1 J0 u" m2 O5 v
// LDAC u) W! K7 s/ t( k! B1 N
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK) O" I0 H7 u. U7 L' {
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN3 ]+ x, z6 D# B/ k3 G4 x3 Q3 \
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
2 L- w" a8 r0 ^) e; a5 D0 K$ E GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
4 Y) j n! |0 ]& b* H7 Y GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY
! t! A) K5 w7 a5 f' a/ h D) s% Y}: o& `/ J& M/ a! s) O
7 w: j% a& A* S2 T/ T1 [# u3 D
int main(void), U- q- u9 p5 L; X3 }3 h
{
6 u: U+ M7 E/ i9 Y+ y0 V // 外设使能
" r5 i) ?; a2 s" O u PSCInit();" k ~" w& I- |9 |
1 `2 H2 a y% N1 F& o1 R
3 }' n, s: }% a6 S \
// 管脚复用配置) O* i$ i* g3 }/ t! |
GPIOBankPinMuxSet();# C. t4 Q Q# |
for(;;)# Z, B0 \; a6 t, ^
{ Y* r/ J7 H* U% j' W
SET_SCLK();//时钟正常输出
1 I& y% }( p1 Q! J ^+ r) d GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
; v- r: W6 z9 b GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS36 E1 N* j; V, C
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
5 o, y! W8 h# t7 E8 g% V9 I
7 w% R! @ h1 N( z1 b9 ^: W delay(20);
- h2 L' A7 z0 K CLR_SCLK();( m7 o$ a0 b3 l- z, k* `2 ]
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
$ r5 ?. g% q+ D) O: f$ o GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS37 K* I8 G. ]% k% O/ O8 Z. {( `
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN! A. v/ P( k& k
delay(20);
. _8 ~. O* p; A- G* i }
2 S! X+ E/ O. \* P3 t6 I: q+ `}
: U* I; f6 [$ m3 ?$ z# ]; R |
|