作者comput (Faint..)
看板ASM
标题Re: [问题] 关於mController的SPI
时间Sun Sep 16 20:18:03 2007
void InitSPI(){
SPIC1_SPIE = 0; // Interrupt Disable
SPIC1_SPE = 1; // SPI enable
SPIC1_SPTIE = 0; // Transmit interrupt disable
SPIC1_MSTR = 1; // MOSI(MOMI)
SPIC1_CPOL = 0; // Clock Polarity
SPIC1_CPHA = 1; // Clock Phase
SPIC1_SSOE = 0; // SS disable
SPIC1_LSBFE = 0; // LSB First
SPIC2_MODFEN = 0;// Master Mode-Fault FUnction Enable
SPIC2_BIDIROE = 0;// Bidirectional Mode Iutput Enabled ( 0 - input, 1 -
// output)
SPIC2_SPISWAI = 0;
SPIC2_SPC0 = 1;
SPIBR_SPPR2 = 0;
SPIBR_SPPR1 = 0;
SPIBR_SPPR0 = 0;
SPIBR_SPR2 = 0;
SPIBR_SPR1 = 0;
SPIBR_SPR0 = 1;
}
char SPIRx() {
byte rec_char;
if (SPIS_SPRF) // 1st half of RDRF clear procedure
rec_char = SPID; // 2nd half of RDRF clear procedure
SPIC2_BIDIROE = 0; // enable input
while(!SPIS_SPRF){
feedCOP();
};
rec_char = SPID; // get recieved character
return SPID;
} //end SPIRx
在output的时候有Data也有CLK.
所以说SPI在Input的时候CLK也会自己跑?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.171.168.22
※ 编辑: comput 来自: 124.171.168.22 (09/16 20:25)
※ 编辑: comput 来自: 124.171.168.22 (09/16 20:41)
1F:推 ruemann:问一下,当你把SPIC2_BIDIROE=0之後,CLK没有动作吗? 09/16 23:04
没有
2F:→ ruemann:另外,最後有收到资料吗?资料为何? 09/16 23:06
也没有收到东西
※ 编辑: comput 来自: 124.171.168.22 (09/17 07:34)
3F:推 ruemann:我的推测是这样,你把BIDIROE=0後,再把SPE=1後,CLK就会 09/18 00:25
4F:→ ruemann:动作,而且把资料收进来。 09/18 00:25