DA14850与SI705温度传感器通信。

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
2个帖子/ 0新
最后一篇
kaptajnen.
离线
最后一次露面:1年8个月前
加入:2019-09-19 08:46
DA14850与SI705温度传感器通信。

嗨,我正在尝试从SI705读取温度。当我使用此PDF中描述的测量过程读取固件版时,我已经测试了传感器。https://www.silabs.com/documents/public/data-sheets/si7050-1-3-4-5-a20.pdf.)第16页。但是,当我尝试阅读温度时,我的输出结束了0,0.截至目前我的代码是这样的:

uint8_t cmd;

UINT8_T数据[2];

uint16_t学位;

cmd = temp_h;

user_i2c_set_slave_address(si705_i2c_address);

user_i2c_multi_byte_read(cmd,data,2);

degrees = convert_to_uint16(数据);

度= convert_to_celsius(度);

返回度;

我正在使用的代码读取字节是以下内容:

void user_i2c_multi_byte_read(uint32_t reg_address,uint8_t * rd_data,uint32_t num_bytes){

user_i2c_send_address(reg_address);

uint32_t index = 0;

for(Uint32_t i = 0; i

send_i2c_command(0x0100&0x3ff);//将R / W位设置为1(读取访问)MSB

if(!(++ i%24)){//fifo是32位

wait_until_i2c_fifo_is_empty();//等到TX FIFO是空的

wait_until_no_master_actity();//等到没有主活动

for(Uint8_t J = 0; J <24; J ++){

//将FIFO内容存储在RAM中

rd_data [index ++] =(0xff&getword16(i2c_data_cmd_reg));//获得收到的字节

}

REG_ADDRESS + = 24 /(I2C_CFG_ENV.REGISTER_WIDTH + 1); //计算下一个寄存器读出

user_i2c_send_address(reg_address);//重新启动读取

}

}

wait_until_i2c_fifo_is_empty();//等到I2C TX FIFO空

wait_until_no_master_actity();

而(索引

rd_data [index ++] =(0xff&getword16(i2c_data_cmd_reg));//获得收到的字节

}

wait_until_i2c_fifo_is_empty();//等到TX FIFO是空的

wait_until_no_master_actity();//等到没有主活动}

关键词:
设备:
PM_DIALOG.
离线
最后一次露面:12小时1分钟前
职员
加入:2018-02-08 11:03
kaptajnen,

kaptajnen,

非常感谢您创建第一个论坛线程并发布您的问题。如果您正在启动新设计,我们建议从DA14585开始 - SDK很有改善,我们有很多软件示例和更详细的文档,即入门将非常有帮助。此外,还有DA14585还有软件路线图支持我们的下一代设备,该设备于11月5日宣布,请查看DA14585 / 6支持口,看看我们的最新SDK6:

https://www.dialog-seminile.com/produ雷电竞官网登录cts/connectivity/bluetooth-low-energy/smartbond-da14585-and-da14586.

DA14585有两个I2C软件示例到我们的支持网站上:

SW示例:读出I2C加速度计并发送通知数据

SW示例:DA14585 / 586与I2C上的Mcube加速度计接口

谢谢,PM_DIALOG.