DA14531 I2C文档?

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
6个帖子/ 0新
最后一篇
洋星
离线
最后一次露面:1个月1周前
加入:2020-05-26 18:20
DA14531 I2C文档?

我正在寻找关于使用此外设的文件,但除了SDK示例之外找不到任何内容

这个例子是关于写作和阅读EEPROM,但我不能使用它,因为我想读取温度传感器(TC74)

我的问题是,当我在i2c.c和i2c.h看时,我无法理解它实际上是如何工作的

如何与奴隶开始沟通?

我知道在函数periph_init(void)中有另一个函数i2c_init(&i2c_cfg);

但这是否意味着我可以在那之后写和阅读?

如果调用i2c_release(),该怎么办?

这是否意味着我需要再次调用i2c_init(&i2c_cfg)?

那个ack和nack怎么样我如何发送或读取它们,与start和stop bits相同

我正在asuming,这是在我不知道的函数之一中完成的

希望你能帮助我理解这一点

PM_DIALOG.
离线
最后一次露面:2天4小时前
职员
加入:2018-02-08 11:03
嗨,马格加,

嗨,马格加,

我建议首先检查我们的DA14531-DA14585-586读取I2C加速度计BLESW示例。它显示了如何从I2C加速度计获取数据,并使用DA14531或DA14585 / 586设备使用BLE通知发送测量。作为外围I2C,使用ADXL345。在User_Adxl345.c文件中,您将找到显示如何使用SDK I2C驱动程序(6.0.14.1114 \ SDK \ Platflic \ Driver \ I2C)的功能以配置和读取I2C设备。

应该在periph_init()中调用i2c_init(),以初始化i2c块。初始化的所有I2C信息都在I2C_CFG配置结构中保持。

如果您有任何后续问题,请告诉我。

谢谢,PM_DIALOG.

洋星
离线
最后一次露面:1个月1周前
加入:2020-05-26 18:20
你好,

你好,

我看到这个例子,但不能编译,所有API都有一个黄色三角形,这是另一个SDK的这个例子吗?如何添加要编译的引用?

PM_DIALOG.
离线
最后一次露面:2天4小时前
职员
加入:2018-02-08 11:03
嗨扬子糖。

嗨扬子糖。

I2C SW示例,作为所有DA14531 SW示例,不包含SDK - 如果检查下载包,则会看到仅包含应用程序层。为此,请在使用该示例之前,首先,您需要将其与SDK链接。

请检查以下文件:

http://lpccs-docs.dialog-semicondiondum/software_example_setup/index.html.

如果您使用的是SDK6.0.14,请遵循以下步骤:

  1. 下载DA14585 / DA14586 - DA14531多级示例
  2. 复制da14531-da14585-586_multiperipheral_example \ project_environment \ dlg_make_keil5_env_v2.000.py并将其与da14531-da14585-586_reading_i2c_accelerometer_ble \ project_environment
  3. 执行新的python脚本:

dbb0 python dlg_make_keil5_env_v2.000.py -sdkpath " "

例如:

> python dlg_make_keil5_env_v2.000.py -sdkpath“c:\ dev \ 6.0.12”

我们正在致力于在此示例中更新Python脚本,以便使用SDK6.0.14运行。

谢谢,PM_DIALOG.

洋星
离线
最后一次露面:1个月1周前
加入:2020-05-26 18:20
你好,

你好,

使用此示例,我Mange才能创建一个有效的功能,虽然我有另一个问题,但我正在使用P0_9作为我的SDA引脚,似乎Devkit中的LED会影响与从机的通信。

我会让我用的功能,以防人需要它:

//我使用I2C_EEPROM示例只需修改PIN SDA-> P0_7,SCL-> P0_8并从主循环调用此函数

void ReadTemp(无效)
{
// uint16_t i2c_address = 0x4d;//从设备地址A5
i2c_abort_t abort_code;//可用于错误检查
UINT8_T REG_ADDR = 0x00;//变量以保存寄存器地址
uint8_t byte_received = 0x00;//接收字节的中间存储
//获取测量LSB
i2c_master_transmit_buffer_sync(&reg_addr,1,&abort_code,i2c_f_none);//传输寄存器以阅读

i2c_master_receive_buffer_sync(&byte_received,1,&abort_code,i2c_f_none);//读取缓冲区
printf_string(UART,“\ n \ rtemperature:”);
printf_byte(UART,(byte_received)&0xff);
}

PM_DIALOG.
离线
最后一次露面:2天4小时前
职员
加入:2018-02-08 11:03
嗨,马格加,

嗨,马格加,

感谢您接受我的回答和输入。

谢谢,PM_DIALOG.