Atmel / Microchip Studio I2C 通信 ASF 框架

问题描述

我是 atmel / microchip studio 的新手,正在尝试使用 I2C 与从设备通信。 I2C传输命令的HAL库或ASF框架如下。

int32_t i2c_m_sync_cmd_write(struct i2c_m_sync_desc *i2c,uint8_t reg,uint8_t *buffer,uint8_t length)
{
    struct _i2c_m_msg msg;
    int32_t           ret;

    msg.addr   = i2c->slave_addr;
    msg.len    = 1;
    msg.flags  = 0;
    msg.buffer = ®

    ret = _i2c_m_sync_transfer(&i2c->device,&msg);

    if (ret != 0) {
        /* error occurred */
        return ret;
    }

    ****msg.flags  = I2C_M_STOP;
    msg.buffer = buffer;
    msg.len    = length;

    ret = _i2c_m_sync_transfer(&i2c->device,&msg);

    if (ret != 0) {
        /* error occurred */
        return ret;
    }****

    return ERR_NONE;
}

问题是四星之间的代码(****)传输了一个不需要的帧,因此,从站行为异常。所需的帧在代码星形部分上方的代码部分中正确传输。如果注释星号部分,则代码无法正常工作。有什么解决办法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...