Re: [問題] 關於mController的SPI

看板ASM (組合語言)作者 (Faint..)時間17年前 (2007/09/16 20:18), 編輯推噓2(202)
留言4則, 1人參與, 最新討論串3/3 (看更多)
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)

09/16 23:04, , 1F
問一下,當你把SPIC2_BIDIROE=0之後,CLK沒有動作嗎?
09/16 23:04, 1F
沒有

09/16 23:06, , 2F
另外,最後有收到資料嗎?資料為何?
09/16 23:06, 2F
也沒有收到東西 ※ 編輯: comput 來自: 124.171.168.22 (09/17 07:34)

09/18 00:25, , 3F
我的推測是這樣,你把BIDIROE=0後,再把SPE=1後,CLK就會
09/18 00:25, 3F

09/18 00:25, , 4F
動作,而且把資料收進來。
09/18 00:25, 4F
文章代碼(AID): #16xHx-Ep (ASM)
文章代碼(AID): #16xHx-Ep (ASM)