关于MSP432的SPI通讯,接收数据时没有CLK信号的问题

2019-07-17 13:54发布

int16_t AD7172_readID(int8_t AD_ID_reg_address)
{
        int16_t AD_ID_L = 0;
        int16_t AD_ID_H = 0;
        GPIO_setOutputLowOnPin(GPIO_PORT_P6, GPIO_PIN2);                        //CS=0
        SPI_transmitData(EUSCI_B1_MODULE, AD_ID_reg_address);
        AD_ID_H = SPI_receiveData(EUSCI_B1_MODULE);                                        //接收高8位
        AD_ID_L = SPI_receiveData(EUSCI_B1_MODULE);                                        //接收低8位
        AD_ID_H = AD_ID_H << 8 | AD_ID_L;
        GPIO_setOutputHighOnPin(GPIO_PORT_P6, GPIO_PIN2);                        //CS=1
        return AD_ID_H;
}
void SPI_init(void)                                                                                                                //SPI 初始化函数。硬件以P6.2~P6.5,从属UCB1。20170609
{
        const eUSCI_SPI_MasterConfig spiMasterConfig =
        {
                EUSCI_B_SPI_CLOCKSOURCE_SMCLK,                                                     // SMCLK。
                3000000,                                                                           // 改为6000000,即可得到4MHz。
                500000,                                                                            // 8MHz带宽
                EUSCI_B_SPI_MSB_FIRST,                                                             // MSB First。符合AD7172时序。
                EUSCI_B_SPI_PHASE_DATA_CHANGED_ONFIRST_CAPTURED_ON_NEXT,    // Phase
                EUSCI_B_SPI_CLOCKPOLARITY_INACTIVITY_HIGH,                                         // High polarity
                        EUSCI_B_SPI_3PIN,                                                                // 3线SPI,CS只在操作AD7172是进行处理
        };

        GPIO_setAsPeripheralModuleFunctionInputPin(                                                        //P6口,P6.3P6.4P6.5选通为SPI功能
                        GPIO_PORT_P6,
                GPIO_PIN3 | GPIO_PIN4 | GPIO_PIN5,                                                        //CLK SIMO SOMI
                        GPIO_PRIMARY_MODULE_FUNCTION);

        SPI_initMaster(EUSCI_B1_MODULE,&spiMasterConfig);
        SPI_enableModule(EUSCI_B1_MODULE);
        AD7172_Reset();
        AD7172_readID(0X47);
}
现在的问题是,收不到AD7172的数据。经过示波器测量在发送数据过程中,CLK是有的。但是在接收数据过程中,CLK没有信号出来。还请路过的大神指点一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。