|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
# [" V; k# j2 r& `2 U* svoid PSCInit(void)
2 G$ p# a' `& j{
1 ] m U) z1 X$ F* g/ h PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);7 K6 @1 S/ z3 G! c6 L+ `# R5 R# ^& N
}
4 ?- O/ {1 A; e7 {
- S( P+ F# Z2 k2 U. @/ ^9 Avoid GPIOBankPinMuxSet(void)9 {, U6 x- Z: ?; z
{
% P. U% H9 O; ^7 u$ T8 t // DRDY ------------ GPIO6[14] -- 111/ p: f8 S, {# c w
// SPI1_CLK ------------ GPIO2[13] -- 462 b& p- Q4 p( V- D
// SPI1_SOMI------------ GPIO2[11] -- 44
$ U; \: E7 K* K/ S/ r // SPI1_SIMO------------ GPIO2[10] -- 43. @. Z3 @0 v1 R2 Y; n4 W
// SPI1_CS2 ------------ GPIO1[0] -- 17' j( ^; A: V1 E+ x) U
// SPI1_CS3 ------------ GPIO1[1] -- 18
# ^ C3 _/ K4 W
* a& O: V. C/ z v4 Q6 f HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
2 w$ W$ N* J2 T HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
- ` C3 x: ^7 g+ k+ s6 _ HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);9 F! m1 V7 d7 h2 Y e4 m6 x8 f$ v
3 G$ S- E% \8 V% O
//DRDY! t8 n% ~6 s1 G W" v
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY5 x3 X9 U, x' D+ l
// CS2,CS3
& c" f* C0 a2 @- B, D GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS27 _) M6 M' M) v
GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS34 Z" ?6 l5 O& ], E" O. N
//SIMO2 O. b) l+ M- W4 e/ k2 s4 z
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO8 X4 D4 i( g1 B# ^, b- l% T
//SOMI
: G4 {! l0 T% D* H0 X, v: s. H4 z GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI2 G; C2 l9 V, c: \
//CLK
c8 @" G) }' I+ o; {) p2 q5 ] GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK; Q6 Q7 X# Z, {
6 G4 y2 B I) P0 y. M o
// LDAC
# J& Z6 \5 v: u9 D" h3 r! `( r GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK3 u8 w m h% r! b, ]; g
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN+ [ H% `) y! K( N* Q; c5 {
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
+ e6 S8 Z; ~+ F7 j5 M. C2 i GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS3
4 \' ]7 [& n1 U- D# ]" Q5 W GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY) @" P N; ?$ f& v! m( W7 r l
}3 H- F# G4 d5 ^8 B
; Y; {7 s# z" G; n3 O8 A) [) T! pint main(void)
% E4 b, O# g# V7 ^/ n{
" k" B0 N! a; p$ T // 外设使能
. x3 N" I' s4 i* Y PSCInit();
5 M t' ~" G @( B+ u* O/ f
1 Z J1 e2 ]; U7 _$ G# g3 { $ X# ~8 Y# q/ r; e, E+ a7 B$ J
// 管脚复用配置. v( k$ g1 o% `- _
GPIOBankPinMuxSet();
# P9 c! C; { V for(;;)% ?1 _2 C8 ]( }* {2 V4 r
{
- p6 x3 K5 s8 [/ C& `+ ] SET_SCLK();//时钟正常输出7 i+ |+ |* b U' B$ D( r
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS23 @1 a8 E* U% r: J% a
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3" ]6 o, a- C, T( x
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN: A' C7 m' |0 `' q1 ], j
* ?" _# ] _$ q5 U8 O' ] T, l3 b$ K delay(20);
0 Z7 z6 O$ ], A( U# Y( x CLR_SCLK();% l: ]' k+ ]6 [
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3
" j2 X1 c$ C$ ?2 S9 E6 z GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
1 G/ L% c, e3 P8 r3 b c. N GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
7 Q2 p; D9 H0 G( U delay(20);, u: g$ h9 O+ x1 h/ e
}* \% Q6 u: p) U5 A, e
}+ C0 R, k+ ]& m- i% m! I
|
|