DA14850与Si705温度传感器通信。

了解更多常见问题教程

2个职位/0个新职位
最后一篇文章
卡普塔伊宁
离线
最后一次见到:1年4个月前
已加入: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命令;

uint8数据[2];

uint16度;

cmd=温度;

用户\ i2c \设置\从机\地址(Si705 \ i2c \地址);

用户i2c多字节读取(命令,数据,2);

度=转换为16(数据);

度=换算成摄氏度(度);

返回度;

我用来读取字节的代码如下:

无效用户i2c多字节读取(uint32 reg地址,uint8 rd数据,uint32 num字节){

用户i2c发送地址(注册地址);

uint32指数=0;

for(uint32\u t i=0;i

SEND_I2C_COMMAND(0x0100&0x3FF);//将R/W位设置为1(读访问)MSB

如果(!(++i%24)){//FIFO是32位

WAIT_UNTIL_I2C_FIFO_IS_EMPTY();//等待Tx FIFO为空

WAIT_UNTIL_NO_MASTER_ACTIVITY();//等待,直到没有主活动

对于(uint8\t j=0;j<24;j++){

//将FIFO内容存储在ram中

rd_data[index++]=(0xFF&GetWord16(I2C_data_CMD_REG));//获取接收字节

}

寄存器地址+=24/(i2c\U)_环境寄存器\u宽度+1);//计算下一个要读出的寄存器

user_i2c_send_address(reg_address);//重新开始读取

}

}

WAIT_UNTIL_I2C_FIFO_IS_EMPTY();//等待I2C Tx FIFO EMPTY

等待_,直到_NO _MASTER _ACTIVITY();

while(索引

rd_data[index++]=(0xFF&GetWord16(I2C_data_CMD_REG));//获取接收字节

}

WAIT_UNTIL_I2C_FIFO_IS_EMPTY();//等待Tx FIFO为空

WAIT_UNTIL_NO_MASTER_ACTIVITY();//等待UNTIL NO MASTER ACTIVITY}

关键词:
设备:
PM\U对话框
离线
最后一次见到:2小时23分钟前
工作人员
已加入:2018-02-08 11:03
嗨,卡普塔伊宁,

嗨,卡普塔伊宁,

非常感谢您创建您的第一个论坛线程和张贴您的问题。如果您要开始一个新的设计,我们建议您从DA14585开始—SDK有了很大的改进,我们有很多软件示例和更详细的文档,这对入门非常有帮助。此外,DA14585还支持11月5日发布的下一代设备的软件路线图,请查看DA14585/6支持端口并查看我们最新的SDK6:

//www.xmece.com/亚博电竞菠菜products/connectivity/bluetooth-low-energy/smartbond-da14585-and-da14586

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

软件示例:读取I2C加速计并发送通知数据

软件示例:DA14585/586与I2C上的mCube加速计接口

谢谢,下午好