高通单安卓平台没有i2c_client_get_device_id函数怎么办
时间: 2023-07-30 16:08:03 浏览: 155
获取android 设备ID (device ID)
5星 · 资源好评率100%
在 Android 平台上,如果没有 `i2c_client_get_device_id` 函数,可以尝试使用 `i2c_adapter_id` 和 `addr` 字段来实现类似的功能。具体的实现方法如下:
1. 获取 `i2c_adapter` 结构体对象:
```C
struct i2c_adapter *adapter = i2c_get_adapter(bus_num);
```
其中,`bus_num` 是 I2C 总线的编号。
2. 构造 `i2c_client` 结构体对象:
```C
struct i2c_client *client = kzalloc(sizeof(*client), GFP_KERNEL);
client->adapter = adapter;
client->addr = slave_address;
```
其中,`slave_address` 是 I2C 从设备的地址。
3. 获取从设备的 ID:
```C
int id = (int)client->adapter->nr << 16 | client->addr;
```
其中,`id` 可以作为从设备的唯一标识符来使用。
需要注意的是,不同的 I2C 控制器可能会有不同的实现方式,因此具体的实现细节可能会有所不同。建议先查看相关文档或者参考其他相关代码实现。
阅读全文