|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
4 Y' c7 G7 B; s: J- n/ C* b$ F9 dvoid PSCInit(void)8 l) T8 f9 R% d7 \1 {
{
+ o" S3 M( F5 q/ H8 } PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);7 L/ o5 |( t4 ?/ t6 e
}
2 A1 @, Y9 A& z: v& b* A+ p: O7 {0 K
0 N& z- h% N% }& D- R/ Evoid GPIOBankPinMuxSet(void)) G, u, g3 a7 p# R
{5 C, W s; W" r
// DRDY ------------ GPIO6[14] -- 1115 L: c' ^1 C y f6 |( ~5 S2 ^
// SPI1_CLK ------------ GPIO2[13] -- 468 w4 N0 d4 c6 ]/ U
// SPI1_SOMI------------ GPIO2[11] -- 44
/ ~: P: J! N0 u& Z // SPI1_SIMO------------ GPIO2[10] -- 43
% k% X4 S, V; |4 U: A // SPI1_CS2 ------------ GPIO1[0] -- 17! R; Q; a) X" n8 Z; w7 S( H
// SPI1_CS3 ------------ GPIO1[1] -- 183 p& m3 ? }+ I+ [9 }7 |3 ]
! V9 d3 W, S+ b' V: d& W4 [
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
. L' F: u% }, ~0 v+ U7 ] HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);9 F6 H8 J+ i T0 T. q
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);
. i9 j* D' _0 a5 n& ^7 m4 `$ W, b* x( a3 ^0 G
//DRDY
7 O* [4 T8 r o$ T0 V+ y GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY% `/ E$ ]0 @3 X5 S% k
// CS2,CS3# I/ P7 K4 U- e- g; `7 l6 ]. {
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS23 b1 i6 w' u) U: C: j4 k
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
" L( r7 D- ?7 T ]( `# q4 H //SIMO* b( \5 s% A8 ]' P& P
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO; V# T# [" v8 y) O
//SOMI
! ]/ m7 P" o1 Y p6 g GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI7 L% s% m+ C( B% }9 N' R/ u: f- p
//CLK% E$ }' U5 u, |; B
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK
. Z \& s( ]6 g& i' i8 m o
% j6 o0 w! ?) e! Y4 t // LDAC |4 _' s2 Z3 {+ m% a
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
7 T! P, v! k9 B GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN; C* ~( l( Z. ?( @- B. O
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS21 { H$ y( P8 k5 y
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3( k7 R! \6 I* Z) l' C% Z& S( F
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY) D; d O! _1 {# r# F7 N
}
! W; F) \8 X1 u& W8 n) C
) @& g' X& D _* ]- o; a, ]int main(void)4 F9 c4 q9 Z8 u' c, a
{ |$ f, g: t( {1 m, V/ @, ~7 J
// 外设使能7 X6 E. V( x4 F: H+ l
PSCInit();
2 \- ]0 n2 }- b# }- S
8 }3 }$ ~. m6 C' E$ L0 [ 9 h9 f! J8 e/ g& @& M9 J
// 管脚复用配置& z( g' W G. j1 [+ H
GPIOBankPinMuxSet();$ i9 V% i! ^+ m& e4 [7 V
for(;;)
( T; Y6 s3 G( ~( x- t7 d! {9 R2 J; ? {( w, K1 N/ r: N s1 @9 K3 L
SET_SCLK();//时钟正常输出0 i6 s9 y' n* V7 w: k
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2) r( X; T$ T) k8 o- ]; a1 Q3 t1 Z; g
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3
2 Q! ^- a6 a4 p% P2 h9 ?6 g' l' i GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN! I+ c7 ~& M! U
. ? D% L* S* ~
delay(20);7 ]" N+ l% J8 P; M9 D3 b
CLR_SCLK();
$ [9 L/ I* j1 D2 e1 | GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3; a+ a7 }* x/ D! n. s
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS31 j# D0 I6 h4 }7 g8 f1 _1 Y
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN F5 q( h% K4 Y* _4 z8 a; O6 e
delay(20);
& a+ |& M" K8 ]3 y }
, _. y, v( i0 J+ A% D5 p" w}
' q* b8 y, ]3 @1 {" E |
|