我正在寻找关于使用这个外围设备的文档,但除了sdk示例之外,找不到任何东西
这个例子是关于写入和读取eeprom的,但是我不能使用这个,因为我想读取温度传感器(TC74)
我的问题是,当我查看i2c和i2c时,我不能理解它是如何工作的
我如何开始与Slave通信?
我知道在函数peripher_init (void)中有另一个函数i2c_init(&i2c_cfg);
但这是否意味着在那之后我就可以写作和阅读了?
如果调用i2c_release()又会怎样呢?
这是否意味着我需要再次调用i2c_init(&i2c_cfg) ?
关于ACK和NACK我如何发送或读取它们,START和STOP位也是一样
我假设这是在一个函数中完成的我不知道怎么做,在哪里做
希望你能帮助我理解这一点
嗨magergar,
我建议先检查一下我们的DA14531-DA14585-586读取I2C加速度计BLE西南的例子。它展示了如何从I2C加速计获取数据,并使用DA14531或DA14585/586设备通过BLE通知发送测量数据。作为I2C的外围设备,使用ADXL345。在user_ADXL345.c文件中,你会发现一些函数,展示了如何使用SDK I2C驱动(6.0.14.1114\ SDK \platform\driver\ I2C)来配置和读取I2C设备。
为了初始化I2C块,应该在peripher_init()中调用i2c_init()。初始化的所有I2C信息都保存在i2c_cfg配置结构中。
如果你有任何后续问题,请告诉我。
谢谢,PM_Dialog
你好,
我看到这个例子,但不能编译,所有的api都有一个黄色的三角形,这是另一个sdk的例子吗?如何添加要编译的引用?
嗨magergar。
I2C SW示例与所有DA14531 SW示例一样,不包含SDK—如果您检查下载包,您将看到只包含应用层。要做到这一点,在使用示例之前,首先需要将它与SDK链接。
请查看以下文件:
http://lpccs-docs.dialog-semiconductor.com/Software_Example_Setup/index.html
如果您正在使用SDK6.0.14,也请遵循以下步骤:
>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
你好,
使用这个例子,我设法创建一个工作的函数,尽管我有另一个问题,我使用P0_9作为我的SDA引脚,它似乎在DevKit的领导影响与奴隶的通信。
我将让我使用的函数,以防有人需要它:
//我使用i2c_eeprom的例子只是修改引脚SDA->P0_7, SCL->P0_8,并从主循环调用这个函数
空白ReadTemp(空白)
{
//uint16_t I2C_Address = 0x4D;//从设备地址
i2c_abort_t abort_code;//可以用于错误检查
Uint8_t reg_addr = 0x00;//存放寄存器地址的变量
Uint8_t byte_received = 0x00;//接收字节的中间存储
/ /得到测量LSB
i2c_master_transmit_buffer_sync(®_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);
}
嗨magergar,
谢谢你接受我的回答和你的意见。
谢谢,PM_Dialog