设为首页收藏本站
搜索
热搜: 活动 交友 discuz
查看: 500|回复: 7

DPS310问题

[复制链接]
发表于 2018-1-28 20:55:09 | 显示全部楼层 |阅读模式
我自己写的DPS310的I2C通信有问题,程序卡在
while (XMC_USIC_CH_GetTransmitBufferStatus(channel) == XMC_USIC_CH_TBUF_STATUS_BUSY)
    {
      /* check TDV, wait until TBUF is ready */
    }
这可能是什么原因那
回复

使用道具 举报

发表于 2018-1-30 10:58:50 | 显示全部楼层
请查看初始化是否有问题,也可以参考官方例程
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-30 16:25:53 | 显示全部楼层
       XMC_I2C_CH_CONFIG_t i2c_cfg =
        {
                .baudrate = 100000U,
        };
        XMC_I2C_CH_Init(channel, &i2c_cfg);

        XMC_GPIO_CONFIG_t i2c_sda =
        {
                .mode = XMC_GPIO_MODE_OUTPUT_OPEN_DRAIN_ALT2,
                .output_strength = XMC_GPIO_OUTPUT_STRENGTH_MEDIUM
        };

        XMC_GPIO_CONFIG_t i2c_scl =
        {
                .mode = XMC_GPIO_MODE_OUTPUT_OPEN_DRAIN_ALT2,
                .output_strength = XMC_GPIO_OUTPUT_STRENGTH_MEDIUM
        };


        if(channel==XMC_I2C2_CH0)
        {
                if(I2C2_CH0_SDA==P5_0_enum)
                {
                        XMC_I2C_CH_SetInputSource(channel, XMC_I2C_CH_INPUT_SDA, USIC2_C0_DX0_P5_0);
                        i2c_sda.mode = XMC_GPIO_MODE_OUTPUT_OPEN_DRAIN_ALT1;
                        XMC_GPIO_Init(P5_0, &i2c_sda);
                }
               
                if(I2C2_CH0_SCL==P5_2_enum)
                {
                        XMC_I2C_CH_SetInputSource(channel, XMC_I2C_CH_INPUT_SCL, USIC2_C0_DX1_P5_2);
                        i2c_scl.mode = XMC_GPIO_MODE_OUTPUT_OPEN_DRAIN_ALT1;
                        XMC_GPIO_Init(P5_2, &i2c_scl);
                }
        }

这样有问题吗,我是参照I2C的例程写的,有DPS310的例程吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-31 16:10:09 | 显示全部楼层
如果我把等待ack加上去,他就一直等待,像是没有应答信号似的。
就是说我加上下面一段程序,他就停在这个程序里,如果我不等待直接清标志位,他就停在/* check TDV, wait until TBUF is ready */里
void XMC_I2C_CH_Wait_ACK(XMC_USIC_CH_t *const channel)
{
        while((XMC_I2C_CH_GetStatusFlag(channel) & XMC_I2C_CH_STATUS_FLAG_ACK_RECEIVED) == 0U)
  {
    /* wait for ACK */
  }
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-10 22:33:12 | 显示全部楼层
如果我用管脚模拟I2C通信,波形如下,但是未得到ACK信号,是为什么?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-10 22:36:21 | 显示全部楼层
我SDO管脚接高电平或是悬空都试过了,发送地址0X77之后没有ACK信号,为什么那?
回复 支持 反对

使用道具 举报

发表于 2018-2-26 17:45:52 | 显示全部楼层
这边整理了一些有关DSP310遇到的问题解答,分享出来,供大家参考!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|360eet-智能硬件 教育平台 ( 沪ICP备09095345号-2  

GMT+8, 2018-4-25 16:40 , Processed in 0.236548 second(s), 29 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表