請(qǐng)教ch579四線全雙工SPI讀寫(xiě)函數(shù)

兩個(gè)問(wèn)題:

(1)spi全雙工能否這樣寫(xiě)?謝謝

uint8_t ch57x_hal_spi_transfer(uint8_t data) {

? ? R8_SPI0_BUFFER = data;

? ? while ( !(R8_SPI0_INT_FLAG & RB_SPI_FREE) );

? ? return ( R8_SPI0_BUFFER );

}



(2)官方給的例程這樣寫(xiě),讀、寫(xiě)分開(kāi)的:

ch579的datasheet描述 :FIFO 方向設(shè)置位RB_SPI_FIFO_DIR置為1:輸入模式(指示接收數(shù)據(jù))

但官方給的函數(shù)無(wú)論是寫(xiě)還是讀,RB_SPI_FIFO_DIR都是置0

如下:

/*******************************************************************************

* Function Name? : SPI0_MasterSendByte

* Description? ? : 發(fā)送單字節(jié) (buffer)

* Input? ? ? ? ? : d: 發(fā)送字節(jié)

* Return? ? ? ? ?: None

*******************************************************************************/

void SPI0_MasterSendByte( UINT8 d )

{

? ? R8_SPI0_CTRL_MOD &= ~RB_SPI_FIFO_DIR;

? ? R8_SPI0_BUFFER = d;

? ? while( !(R8_SPI0_INT_FLAG & RB_SPI_FREE) );

}


/*******************************************************************************

* Function Name? : SPI0_MasterRecvByte

* Description? ? : 接收單字節(jié) (buffer)

* Input? ? ? ? ? : None

* Return? ? ? ? ?: 接收到的字節(jié)

*******************************************************************************/

UINT8 SPI0_MasterRecvByte( void )

{

? ? R8_SPI0_CTRL_MOD &= ~RB_SPI_FIFO_DIR;

? ? R8_SPI0_BUFFER = 0xFF;? ? ? ? ? ?// 啟動(dòng)傳輸

? ? while( !(R8_SPI0_INT_FLAG & RB_SPI_FREE) );

? ? return ( R8_SPI0_BUFFER );

}


QQ拼音截圖20231215144107.jpg

RB_SPI_FIFO_DIR這個(gè)設(shè)置是不是僅對(duì)FIFO方式?單字節(jié)讀寫(xiě)無(wú)需關(guān)注?


多字節(jié)的接收注意配置該位為1,注意初始化的時(shí)候配置一下即可。

可以直接使用例程的操作,收發(fā)都可以參考的。

操作SPI中斷DMA可以參考:

CH58xSPI0中斷DMA - SweetTea_lllpc - 博客園 (cnblogs.com)


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频