你好,我设法通过ic2从DA发送一个字节到另一个主机处理器使用这个函数:
保龄球
i2c_slave_send (uint8_t数据)
{
如果(i2c_slave_read_requested ()) {
SetWord16 (I2C_DATA_CMD_REG、数据);
GetWord16 (I2C_CLR_RD_REQ_REG);
返回true;
}
返回错误;
}
现在我想扩展它以便能够发送多个字节。我做了休闲:
保龄球
I2c_slave_send (uint8_t *data, uint8_t len)
{
GLOBAL_INT_DISABLE ();
如果(i2c_slave_read_requested ()) {
SEND_I2C_COMMAND数据(* & 0 xff);
GetWord16 (I2C_CLR_RD_REQ_REG);
莱恩-;
数据+ +;
}
尽管(兰){
如果(i2c_slave_read_requested ()) {
SEND_I2C_COMMAND((*数据& 0 xff));
GetWord16 (I2C_CLR_RD_REQ_REG);
莱恩-;
数据+ +;
}
}
GLOBAL_INT_RESTORE ();
如果(len = = 0) {
返回true;
}
返回错误;
}
但是这一点也不工作,我找不到我应该清除或使用的其他寄存器?
你能帮我一下吗?

在我的系统中,DA14580作为从设备,我想发送数据到它,并可以读取数据形式。在I2C协议中,例如我想设置Da1480的REG,我发送(Addr+Write)+RegAddr+Data1+Data2到Da14580,但是在哪里我可以读取Da14580中的数据?
嗨HeYQ yassin.bennceur,
抱歉,从站模式下的I2C,虽然硬件支持,但应用并不广泛,所以SDK中没有关于这种模式的对话框支持。
由于MT_dialog
好了,看了这个,花了一整天的时间试着让SDK(或者我应该说,演示套件)工作……我刚达到了供应商能接受的极限。
你别想碰我的产品。不支持像I2C从模式设备这样简单有用的东西,因为你不觉得它很漂亮******。如果没有观看“介绍视频”(甚至没有展示如何使用你的软件),就不可能找到你的SDK的网站是******。作为一名开发者,我打算去北欧或者其他有自己产品的公司。
感谢我们的反馈。我已经发信息到你的注册邮箱了。BR JE_Dialog
你找到解决办法了吗?
我也有同样的问题,他们给了我同样愚蠢的答案(我们不支持…)
通常,由于异步请求,I2C从站应该是中断驱动的。在我的设计中,我成功地实现了I2C从机,一切都如预期的那样工作。
在源代码中并不清楚函数“i2c_slave_read_requested()”在做什么。
你可以发送一些数据或函数,甚至一些东西开始吗?
因为我试过了,这并不容易,我真的不认为开发人员应该处理这个问题。所有其他制造商都在这么做!!