工具/软件:Code Composer Studio
大家好
我想使用 MSP432P401R 通过单独的芯片选择引脚在一条 SPI 总线上控制两个 SPI 从器件(我的432上的其他 SPI 总线被占用)。
问题
在将调试代码从 LaunchPad 部署 到最终目标(PCB 上的 MSP432)时、我可以轻松控制这两个器件。
但是、当我停止在 CCS 中进行调试时、重新启动目标 MSP432和我的 PCB、只有一个 SPI 从器件工作。
故障排除步骤
首先、我想知道故障从设备在复位后是否需要很长时间、我在调用故障从设备之前添加了一些延迟、我的问题仍然存在。
2.交换 SPI 呼叫顺序;问题仍然存在。
3.我想知道代码烧录过程是否成功完成;而 PCB 上由432控制的所有其他器件都可以正常工作。
我的代码的一部分
const eUSCI_SPI_MasterConfig spiMasterConfigADF4351 = { EUSCI_A_SPI_CLOCKSOURCE_SMCLK、 // SMCLK 时钟源 3000000、 // SMCLK = DCO = 3MHz 50万、 // SPICLK = 500kHz EUSCI_A_SPI_MSB_FIRST、 // MSB 优先 EUSCI_A_SPI_PHASE_DATA_Captured_ONFIRST_changed_on_next、 当未为 ADF4351启用 SPI 时、EUSCI_A_SPI_CLOCKPOLARITY_INACTION_LOW、// CLK 低电平 EUSCI_A_SPI_3引脚 // 3线 SPI 模式 }; const eUSCI_SPI_MasterConfig spiMasterConfigAD8366 = { EUSCI_A_SPI_CLOCKSOURCE_SMCLK、 // SMCLK 时钟源 3000000、 // SMCLK = DCO = 3MHz 50万、 // SPICLK = 500kHz EUSCI_A_SPI_MSB_FIRST、 // MSB 优先 EUSCI_A_SPI_PHASE_DATA_Changed_ONFIRST_captured_on_next、//相位 ///EUSCI_A_SPI_PHASE_DATA_Captured_ONFIRST_changed_on_next、 EUSCI_A_SPI_CLOCKPOLARITY_INACT_LOW、//高极性 EUSCI_A_SPI_3引脚 // 3线 SPI 模式 }; //典型的3引脚 SPI 初始化 GPIO_setAssiPeripheralModuleFunctionInputPin (ADF4351_SPIPort、ADF4351_SPICLK | ADF4351_SPISIMO | ADF4351_SPISOMI、GPIO_primary_module_function); SPI_MasterMaster (ADF4351_SPICLIM );ADF4351_SPI_initConfigModule (AD4351;ADF4351 SPI (AD4351);AD4351 SPI (AD4351 SPI GPIO_setAsOutputPin (ADF4351_CSPort、ADF4351_CSPin); //将芯片选择设置为高电平作为默认值 GPIO_setOutputHighOnPin (ADF4351_CSPort、ADF4351_CSPin); GPIO_setAsOutputPin (AD8366_CSPort、AD8351_SPIN );AD4335_AD431_ADCSPIN 初始化 ADF4351_CSPort、ADF4351_CSPin); SPI_DisableModule (ADF4351_SPI); //重新配置 SPI、因为两个器件的 SPI 主配置不同 :GPIO_setAssetInitFunctionInputPin (AD8366_SPIPort、AD8366_SPICLK | AD8366_SPI_SPI 主要功能;AD8366 SPI 主要功能;AD8366 SPI AD8366_SET_GAIN (4500、4500、AD8366_SPI、AD8366_CSPort、AD8366_CSPIN);
电源
软件平台 CCS 8.3.0.0009
硬件:MSP432P401R LaunchPad -> JATG -> 目标 MSP432P401R