器件型号:MSP432P401R
您好!
因为,我正在进行 msp432p401r 和 dac161s055之间的 SPI 免疫工作。我现在有两个问题,需要您的建议。
1) 1)我使用驱动程序库中的 SPI 主站增量示例在 msp432和 dac161s055之间进行通信、在开始时效果非常好。 但是、现在 SDO 端口不再响应、它上面没有信号、它是 P 1.7 (SDO 或 SOMI)。 我的代码中没有任何变化。 此问题可能会出现什么情况?
2)在 dac161s055中,有24位(3字节)数据通信,并且为了发出通信,SCLK 应该打开24个时钟周期,但在我的情况下(使用前面提到的示例),我只得到8个时钟脉冲,这不足以满足我的要求。 请告诉我如何增加 SCLK 的时钟周期?
随附以下代码:
const eUSCI_SPI_MasterConfig spiMasterConfig =
{
EUSCI_B_SPI_CLOCKSOURCE_SMCLK、 // SMCLK 时钟源
24000000、 // SMCLK = 24MHZ
1000000、 // SPICLK = 1MHz
EUSCI_B_SPI_MSB_FIRST、 // MSB 优先
EUSCI_B_SPI_PHASE_DATA_Changed_ONFIRST_Captured_On_Next、 //相位
EUSCI_B_SPI_CLOCKPOLARITY_INACTION_LOW、//高极性
EUSCI_B_SPI_3引脚
};
/*静态*/
静态易失性 uint_fast16_t resultsBuffer[uint8_MAX];
静态易失性 uint8_t resPos;
静态易失性 uint8_t RXData = 0;
静态 uint32_t TXData=0;
/*在 SPI 模式下选择 P1.5 P1.6和 P1.7 */
MAP_GPIO_setPeripheralModuleFunctionInputPin (GPIO_PORT_P1、
GPIO_PIN5 | GPIO_PIN6 | GPIO_PIN7、GPIO_PRIMARY_MODULE_FUNCTION);
CSB 和 LDACB 为/* P 6.0和 P6.6 *
MAP_GPIO_setAsOutputPin (GPIO_PORT_P6、GPIO_PIN0);
MAP_GPIO_setOutputHighOnPin (GPIO_PORT_P6、GPIO_PIN0);
MAP_GPIO_setAsOutputPin (GPIO_PORT_P6、GPIO_PIN6);
MAP_GPIO_setOutputHighOnPin (GPIO_PORT_P6、GPIO_PIN6);
P:S:我是嵌入式系统方面的新手。 我的问题可能非常简单。
非常感谢您的友好回复。
此致、
Hasan