打印

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

[复制链接]
2420|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vaiting|  楼主 | 2017-6-16 09:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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没有信号出来。还请路过的大神指点一下。

相关帖子

沙发
dirtwillfly| | 2017-6-16 17:28 | 只看该作者
奇怪的问题

使用特权

评论回复
板凳
chuntian2016| | 2017-6-17 21:41 | 只看该作者
这个是采用SPI总线进行的通讯。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

70

帖子

1

粉丝