我正在尝试使用半双工 SPI
通信,由 XMC1400 作为主站。 我使用 DAVE 应用程序将 SPI 引脚配置为推挽式,下面是相应的代码:
XMC_GPIO_SetMode(MOSI_Port, MOSI_Pin, XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT9); SPI_MASTER_Transmit( SPI_MASTER_0, arr,sizeof(arr));
while(SPI_MASTER_IsTxBusy( SPI_MASTER_0));
for(in
ti =0;i< 20; i++);
XMC_GPIO_SetMode(MOSI_Port, MOSI_Pin, XMC_GPIO_MODE_INPUT_TRISTATE);
SPI_MASTER_Receive( SPI_MASTER_0, Read_Data,1);
while(SPI_MASTER_IsRxBusy( SPI_MASTER_0));
虽然数据从从站正确传输,并通过示波器在数据线上看到,但SPI_MASTER_Receive函数Read_Data返回的值总是由所有的 1 组成。
作为临时解决办法,我将 XMC1400 配置为全双工,并将 MOSI 和 MISO 引脚连接在一起。
现在的问题是,当 XMC1400 配置为半双工 SPI 主站时,SPI_MASTER_Receive功能能否正常工作。