我与 MFRC522之间的 SPI 通信存在问题、因此我尝试使用 SPI 监听模式来测试配置、但当我这么做时、SPI 残桩在等待 从未设置的 UCRXIFG。 是否应在监听模式下设置它?
我的初始化代码:
//初始化主 EUSCI_B_SPI_initMasterParam param ={0}; param.selectClockSource = EUSCI_B_SPI_CLOCKSOURCE_SMCLK; param.SourceClockFrequency = CS_getSMCLK (); param.desiredSpiClock = 4000000; param.msbFirst = EUSCI_B_SPI_MSB_FIRST; param.clockPhase = eUSCI_B_SPI_PHASE_DATA_COPEDULGE_ONFIRST_CHANGE_ON_NEXT; param.clock极 性= eUSCI_B_SPI_CLOCKPOLAR_INACT_LOW; param.spiMode = eUSCI_B_SPI_3Pin; eUSCI_B_SPI_initMaster (eUSCI_B1);param_B1和 param_B1基本值;param_B1 UCB1STATW |= UCLISTEN; //启用 SPI 模块 EUSCI_B_SPI_ENABLE (EUSCI_B1_BASE);
我的测试代码:
unsigned char ByteCount=0、dumm=0、workingaddr= addr; P9OUT &=~μ F 引脚;//CS //__delay_cycles (10); UCB1IFG &=~UCRXIFG; EUSCI_B_SPI_transmitData (EUSCI_B1_base、addr); while (!(UCB1IFG & UCRXIFG)); 虚拟= EUSCI_B_SPI_receiveData (EUSCI_B1_BASE); while (ByteCount < len) { workingaddr += inc; UCB1IFG &=~UCRXIFG; eUSCI_B_SPI_transmitData (eUSCI_B1_base、workingaddr); while (!(UCB1IFG & UCRXIFG)); DATA[ByteCount]= EUSCI_B_SPI_receiveData (EUSCI_B1_BASE); ByteCount++; } //__delay_cycles (10); P9OUT |=引脚;//CS