我设法通过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,甚至没有显示如何使用你的软件是******。作为一名开发者,我只会去找Nordic或其他拥有自己产品的公司。
感谢我们的反馈。我已经给你的注册邮箱发了信息。BR JE_Dialog
你找到解决办法了吗?
我也有同样的问题,他们给了我同样愚蠢的答案(我们不支持…)
通常,由于异步请求,I2C从服务器应该是中断驱动的。在我的设计中,我成功地实现了I2C从设备,一切工作正常。
不清楚函数“i2c_slave_read_requested()”在源代码中做了什么。
你能发送一些数据或功能,甚至是一些东西作为开始吗?
因为我确实尝试过,但这并不容易,我真的认为开发者不应该处理这个问题。所有其他制造商都在这么做!!