|
使用下面的例子代码,不能使SIMO和CS为低电平:+ P& A/ U+ H+ [( H& c5 J
void PSCInit(void)( A g! z0 Z' R) s
{
[$ s1 t+ [$ t! W- b V! n1 m PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
2 a7 U& ~) \. o+ j# D8 D& n- @} E$ H* j" k2 Y" {) Y0 J* F0 J4 e
! A' f, ?( E8 U2 {" ovoid GPIOBankPinMuxSet(void)% P4 U* |3 E+ i) Y" k4 ~# A+ A8 T% {
{
( [+ `1 b6 O P/ x' L3 P! D // DRDY ------------ GPIO6[14] -- 111) q n$ g+ d/ s& K1 k# A* z% ], S
// SPI1_CLK ------------ GPIO2[13] -- 46
|( J9 v9 C. w, ^5 n T // SPI1_SOMI------------ GPIO2[11] -- 44' t7 p7 @) E, }' L
// SPI1_SIMO------------ GPIO2[10] -- 432 T9 u! M8 ~* l+ x% y0 F
// SPI1_CS2 ------------ GPIO1[0] -- 17
, ]. m7 W$ _7 a // SPI1_CS3 ------------ GPIO1[1] -- 18
, X; T) ^; n- t8 r; h
4 g) P% _2 ?8 G HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = (0x88000000);+ P" }+ s5 j1 h, g0 |
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = (0x00880800);
" m' {$ |) @0 w4 i0 R: t/ I HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x00000080);8 \2 s% ]7 T! O# }1 x& o% c4 t
. \$ g" ]# t) Y: _+ j) p //DRDY
! _/ S: ^$ |& L5 O8 X& I5 H6 Y GPIODirModeSet(SOC_GPIO_0_REGS, 111, GPIO_DIR_INPUT); // GPIO6[7] DRDY2 [$ D9 |5 Y- ]0 Q1 R: Q+ X: n8 X
// CS2,CS3
" T1 \1 t0 `" s* d GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // GPIO1[0] CS2
' Q8 i5 M. p7 q, i, M GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // GPIO1[1] CS3$ r8 ?# t3 q4 e8 [ q
//SIMO8 Z3 |6 N" R' e% U$ x0 B
GPIODirModeSet(SOC_GPIO_0_REGS, 43, GPIO_DIR_OUTPUT); // GPIO2[10] SIMO
8 o: V* |# d0 j, z //SOMI4 `$ d9 d0 @8 a/ f7 d9 }, \/ S
GPIODirModeSet(SOC_GPIO_0_REGS, 44, GPIO_DIR_INPUT); // GPIO2[11] DOMI+ {. I: P/ a# @/ R
//CLK6 Q& E3 X- ?, z1 H
GPIODirModeSet(SOC_GPIO_0_REGS, 46, GPIO_DIR_OUTPUT); // GPIO2[13] CLK& b1 C: d* Z; `* D5 e# }
9 ]! t& k* Q4 q4 W8 V ?3 n // LDAC; \2 \3 x H I
GPIOPinWrite(SOC_GPIO_0_REGS, 46, GPIO_PIN_LOW); // CLK
4 h9 M+ v. Q- A0 h5 Z GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
8 w- i; s% M% C5 b( ? p GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2! w% D. a3 P, [+ r, C7 ], O
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); //CS32 g* G" C8 V' U+ X, X) a, t9 f
GPIOPinWrite(SOC_GPIO_0_REGS, 111, GPIO_PIN_LOW); //DRDY; U$ o$ Y! k- @! Z [: I$ E E
}1 X; s9 X* U- }/ a
* c P* Q% [2 W. a) u6 o
int main(void)2 u) P* J; T; P2 o7 M) Z
{8 u3 T0 _7 E1 T: G/ j; n( ?% D$ x
// 外设使能
, `" h& a/ v8 D PSCInit();
6 ?* Z) {& R0 {+ y* v. u& y2 X" B; |8 z
" O) r/ Z* E. F2 V* G8 s D9 m y // 管脚复用配置4 T4 Z* p* ^2 B3 T( [$ G, U
GPIOBankPinMuxSet();
2 }: G% @4 K6 Z: O for(;;)
% x0 I/ _2 e% p2 b1 e, P {
8 ^! a3 l) l" @; ] SET_SCLK();//时钟正常输出9 q3 e) W q% ~+ H6 @) q
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS2
* p' F$ z8 F w% G GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH); // CS3- e# M# W, I- |' J. h+ E* ^
GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_HIGH); // SDIN
2 a5 z8 p5 K5 @) r1 o
. a) F8 } }! ] H delay(20);
2 K2 [& h3 l4 K' `. X CLR_SCLK();2 ?. O1 E3 U% v$ W% Y: Y! W
GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH); // CS3$ j) `7 n6 H% k9 O) u) m% m$ g
GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW); // CS3
9 k" w8 J% m E5 L1 @% z2 ` GPIOPinWrite(SOC_GPIO_0_REGS, 43, GPIO_PIN_LOW); // SDIN
; C4 q( d9 ^9 o8 f delay(20);1 N& i. I5 p) Z9 q- P, J2 m
}
7 E" k* p" o' W W, G" s/ l: Y}) K; h% |/ p# F
|
|