您好,我使用以下功能通过ic2将一个字节从DA发送到另一个主机处理器:
布尔
i2c从站发送(uint8数据)
{
如果(i2c从机读取请求()){
SetWord16(I2C_数据_命令_注册表,数据);
GetWord16(I2C\U CLR\U RD\U REQ\U REG);
返回true;
}
返回false;
}
现在我想扩展它,使其能够发送多个字节。我做了休耕:
布尔
i2c从发送(uint8数据,uint8长度)
{
全局_INT_DISABLE();
如果(i2c从机读取请求()){
发送I2C命令(*数据和0xFF);
GetWord16(I2C\U CLR\U RD\U REQ\U REG);
蓝--;
数据++;
}
while(len){
如果(i2c从机读取请求()){
发送I2C_命令((*data&0xFF));
GetWord16(I2C\U CLR\U RD\U REQ\U REG);
蓝--;
数据++;
}
}
全局_INT_RESTORE();
如果(len==0){
返回true;
}
返回false;
}
但这根本不起作用,我找不到我应该清除或使用的其他寄存器?
你能帮帮我吗?
在我的系统中,DA14580充当从设备,我想向它发送数据,也可以从中读取数据。例如,在I2C协议中,我想设置Da1480的REG,我向DA14580发送(Addr+Write)+RegAddr+Data1+Data2,但我可以在哪里读取DA14580中的数据?
嗨,嗨,亚辛,本瑟,
很抱歉,虽然硬件支持从模式下的I2C,但并未广泛使用,因此SDK中的dialog不支持这种模式。
谢谢你的对话
好的,看到这一点,在今天一整天试图让SDK(或者我应该说,演示工具包)正常工作之后……我已经达到了我的极限,可以从供应商那里接受什么。
你没有进入我的产品。不支持像I2C从模式设备这样简单和有用的东西,因为你觉得它不好看******。有一个网站,不看“介绍视频”就无法找到你的SDK作为一名开发人员,我只想去北欧或其他有他们产品的公司。
感谢我们的反馈。我已向您的注册电子邮件发送了一条消息。BR JE_Dialog
你找到解决办法了吗?
我也有同样的问题,他们给了我同样愚蠢的答案(我们不支持…)
由于异步请求,I2C从设备通常应该是中断驱动的。我在设计中成功地实现了I2C从设备,一切正常。
不清楚源代码中的函数“i2c_slave_read_requested()”在做什么。
你能发送一些数据或函数,甚至是开始的东西吗?
因为我确实尝试过,但这并不是那么容易,我真的不认为开发人员应该解决这个问题。所有其他制造商都在这么做!!