【求助】CH573使用雙線SPI

想使用ch573替代nrf24le1,發(fā)現(xiàn)ch573支持的SPI是四線的。如果想實現(xiàn)兩線SPI,應該如何連接,程序應該如何配置?Snipaste_2021-05-19_11-59-50.jpg查了些資料,有的mcu可以配置寄存器來設置。有的需要添加電路來實現(xiàn)。ch573的例程看了下是普通四線方式??次臋n沒有發(fā)現(xiàn)有配置兩線的方法

又仔細查看了文檔。

Snipaste_2021-05-19_13-46-22.jpg


雙線SPI, 是只有sck, sdio 模式嗎

在ch57x 系列的soc上可以按照下面方式來實現(xiàn):

//初始化
//sck0?初始化
GPIOA_ModeCfg(GPIO_Pin_13,?GPIO_ModeOut_PP_5mA);
//MISO?作為sdio初始化
GPIOA_ModeCfg(GPIO_Pin_15,?GPIO_ModeIN_PD);

SPI0_MasterDefInit(?);
//32?分頻,主頻32M?時候,?這里為1M,半雙工下不建議速度太快,因為是軟件控制,太快可能出現(xiàn)sdio?PP輸出打架的現(xiàn)象
R8_SPI0_CLOCK_DIV?=?32;



//發(fā)送一個byte
R32_PA_DIR?|=?GPIO_Pin_15;
R8_SPI0_CTRL_MOD?&=?~RB_SPI_FIFO_DIR;
R8_SPI0_CTRL_MOD?|=?RB_SPI_MISO_OE;?
//R8_SPI0_CTRL_MOD?=?0X34;
R8_SPI0_BUFFER?=?data_tx;
while(?!(R8_SPI0_INT_FLAG?&?RB_SPI_FREE)?);
?
?
?
?
//接收一個byte????????
R32_PA_DIR????&=?~GPIO_Pin_15;
R8_SPI0_CTRL_MOD?&=?~RB_SPI_MISO_OE;?
R8_SPI0_CTRL_MOD?|=?RB_SPI_FIFO_DIR;
R8_SPI0_BUFFER?=?0xFF;???????????//?啟動傳輸
while(?!(R8_SPI0_INT_FLAG?&?RB_SPI_FREE)?);??
data_rx=?R8_SPI0_BUFFER;



頂一下


頂一下


感謝3樓的例程。太清晰詳盡了。


只有登錄才能回復,可以選擇微信賬號登錄

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