|
|
使用下面的例子代码,不能使SIMO和CS为低电平: B S. l) n U' g: _
void PSCInit(void) ?1 w" X# @, g, S$ U2 ?
{
7 ~& w" ]3 V6 r) C: z( C PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
: ~4 X, _' O; m+ y9 S q `}) B: w9 y- C' X6 a: h
& b9 a0 i- \2 X; s: m4 d: A, R/ I
void GPIOBankPinMuxSet(void)
4 f R) c& E- i' B+ X" b$ ^{6 t- y9 n+ u$ [4 d
// DRDY ------------ GPIO6[14] -- 111
- P0 W; I* N4 |7 V1 w+ j# u) M S // SPI1_CLK ------------ GPIO2[13] -- 46
9 [9 `9 D+ }4 ^) P7 t // SPI1_SOMI------------ GPIO2[11] -- 44$ W( m! B) r r P/ \' ~) Z
// SPI1_SIMO------------ GPIO2[10] -- 43
$ n- ?) e) M9 s // SPI1_CS2 ------------ GPIO1[0] -- 17' p3 ^+ U) G" i3 |
// SPI1_CS3 ------------ GPIO1[1] -- 18
1 x: k. U/ X, H/ A, `7 r$ I
8 Y. H( m2 J5 x( R HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
- g& Z' V. J. c1 K$ G( u# i) f( x HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
! V* f- J, `: @/ s. e( L8 G HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);5 l) g! ^; K( \* V* l
" ^. Y( K# R9 g! c/ v" z //DRDY/ u7 q- @9 f: D1 o
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY* z) B* h3 ]8 m2 ?& O
// CS2,CS34 o+ {+ Z0 c" r7 \( V3 L: H
GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2( ^' @ p: x- X
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
" F: D8 q* ~# e$ h //SIMO
I5 i; v# l$ s9 f' `1 Q GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO7 ^) s" P( p7 f1 z( e0 g: v( f0 H" p: C
//SOMI
3 K, I/ ?( C8 L- x GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
- _* V: ]. u8 r; I: Z //CLK- q* P2 p% ]: B7 y2 @6 L
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK6 P) v6 h( A: n; n7 X* f; k% S
; ~( x. C2 C( ?6 d
// LDAC* }4 T! t4 P) F& H- q: r9 c _
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK% Z1 G# n' w# `) _4 k3 z
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN9 v% K/ ]/ ^4 H9 E0 n. F# H
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
9 `; |! Q% o' }# P% K. } GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS39 L4 V8 m/ H9 b1 ~9 S+ v7 {7 z
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY2 k" f, [3 h3 G# r
}
, G2 f9 C8 K7 A! i$ W5 i; ^* P0 D2 a! o! w8 |3 X; r% F. l
int main(void)
% h% L" V3 B$ k5 ?: `+ R{: q; P) ~1 a" R5 U$ n
// 外设使能2 |# ]3 O; ^7 M# a5 Y% t. ~
PSCInit();
8 C" v. R1 c1 ~# [& j- a; T
% I- K0 g* p) G( `
% l$ Y5 \, v' P) m; X4 a, ~ // 管脚复用配置0 d/ ?6 {# M' j; V
GPIOBankPinMuxSet();- q3 ]9 m4 Q' d3 M/ L0 L# v4 p$ {
for(;;)( c; f2 p$ t% A. W0 \
{
7 {' J4 O9 e( G+ O7 ?, u SET_SCLK();//时钟正常输出$ G: T2 J4 o1 D3 i7 d6 b
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS25 I' P$ x, P$ O, q
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS30 \/ v9 e) ~& N3 Q E
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN; p7 k: o, T( U! j
9 m+ f/ q8 E& E2 P
delay(20);/ `4 D/ |, ^2 y& t# @9 D7 ~
CLR_SCLK();. v: b }8 l* ]* y1 E8 b6 K5 ~* y
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
! ?6 W" E3 }/ r GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
0 Y: |- S2 }* Y% s' h/ R GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN' A" ?# {9 P' s- }
delay(20);' G& F4 [0 a) ~; P+ I! O8 i0 C
}
- Z- X! O8 V1 X- z* m}% F, ^! @+ T4 _2 c. k; r0 J
|
|