|
|
使用下面的例子代码,不能使SIMO和CS为低电平:
2 K% L7 g7 q3 P: I4 Y- Qvoid PSCInit(void)
2 H8 F& Z( s: Z1 Y8 j{' M# a/ m- D$ c3 U) x
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
" m/ S" W, [8 g$ T# o. _}
. \$ _, x9 Q& g- H! X( i/ u; d" D, {& q' C$ ~1 u
void GPIOBankPinMuxSet(void)) w4 D' Y+ @: }! H
{
2 N! p3 R% v5 M' B7 T. \) H/ i // DRDY ------------ GPIO6[14] -- 111
: X1 b, k) h5 J // SPI1_CLK ------------ GPIO2[13] -- 460 X. ` |5 K! ^8 a% L
// SPI1_SOMI------------ GPIO2[11] -- 44( N# ~& N1 C! t; _ k8 X3 g
// SPI1_SIMO------------ GPIO2[10] -- 43$ g( g; L. T. q8 q1 n
// SPI1_CS2 ------------ GPIO1[0] -- 17
0 m' a! C. Q0 J+ n( w. N$ Q // SPI1_CS3 ------------ GPIO1[1] -- 18+ s5 U) k5 y4 C7 D4 m( x0 r. }' m
$ u2 Z( T1 C3 U6 o6 ^8 M
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);
% L4 J5 E- z) p; d. G HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);( C0 z9 p( M. E; Y
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);$ p5 ~4 t( J3 j, @" |1 \$ L
) v/ t) m- F/ E- V3 e8 @# [! n( O5 ~ //DRDY# N6 K* V. f: `0 G6 D
GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY1 W; H0 U2 w/ `2 k% R2 }" @% \+ L, Y
// CS2,CS3
$ f$ {: P8 O. Q W, W o! f9 T GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
& e4 b3 |1 r" M/ c \% t2 P GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3
# A$ ^0 i( S9 y' ~" N( p& G$ Y //SIMO3 r; X1 _/ j# X3 w: A
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
- ~! |5 @$ C, z# B, v, T //SOMI5 h$ d: o9 g$ Z$ X, J7 N
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI
5 b- G i+ Y+ Y" s4 ~ //CLK+ p: l E* q0 y& {7 |4 \2 D
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK9 Z- U# i3 H: f5 j9 d
a6 K0 I" e. s Z _$ B3 r* T( d // LDAC+ v# s$ k8 N: @" `2 K% j
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK1 }. U1 B6 w" O; S+ p7 D
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN6 z7 o" j# N; R+ C Z( b
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2, D( @) W' f E3 r% d; J& s0 i5 J
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS31 R+ T, y9 z w! Q. d9 O- J) H
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY% i5 N! F) a7 M9 u* e3 P5 i
}6 F6 r( k, \, M
5 ?& \9 C7 a5 }0 k6 @4 Bint main(void)) l& r. R+ y: V4 S, ^1 }0 E
{4 u8 t' z7 M8 c5 a
// 外设使能: X( z+ N4 T0 `& ?3 w
PSCInit();4 ^- A- l; X3 t) b8 J- G
& J6 X8 E" K- r- _1 f 5 ?. P% C# B1 J) ^( i
// 管脚复用配置% i; Y, N/ u* d# K8 D( o
GPIOBankPinMuxSet();# z% W, O/ O: k
for(;;)+ ~6 P/ T* _& T9 {
{
2 i; M/ {# E: }' X SET_SCLK();//时钟正常输出0 F( D3 v+ A' B+ x2 m6 i( ^
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
o% c' ]# d: ^- Y7 P& K GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS36 W8 G) T6 O8 S9 n0 F- y
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
* j/ g% ]0 C# ^. q
- Q3 P) i; e, X9 ~+ j$ z5 ` delay(20);6 B5 F3 X6 B: @; g" c
CLR_SCLK();0 x4 R0 `+ b5 q% Z2 ^
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS33 }. s: |2 k4 z1 ~- z( h5 D! m
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3# n6 ~( P) {/ e. }/ U5 @/ Q- o
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
1 G- T2 E: ~, ?6 r* J/ e7 Q. R delay(20);& B8 ~3 z. k" V/ b |
}# L# d! c: t) m$ S/ s' Y% `. L
}
: f c1 P% E% W0 L |
|