CC2530 SHT21 IIC 温湿度传感器驱动实现与速率测试(主机模式)

本文详细记录了SHT21温湿度传感器在CC2530平台上的驱动实现与速率测试过程,特别是在主机模式下解决读取数据异常问题的方法,以及通过调整中断设置提高数据读取成功率的经验分享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载请注明出处,谢谢!

Newbit-Msming 2018-6-15

SHT21 温湿度传感器驱动实现与速率测试(主机模式 Host Master)

非主机模式:CC2530 SHT21 IIC 温湿度传感器驱动实现与速率测试(非主机模式)

环境:Windows 10、IAR 10.10

SDK: Z-Stack 3.0.1

IC:CC2530

工程:NewbitTemperatureHumiditySensor

测试仪器:Tektronix TBS 1202B

时间请查看 △(光标1和光标2的时间差)

主机模式下,按照官方文档配置SCL让其产生中断,中断是产生了,但就是读不到准确数据,基本上都是

读到0xFFFF,偶尔0xDFFF,CRC永远都是0xFF,最重要的是SHT21还会给你一个应答。。。被气到了!

一开始怀疑时钟太快,因为刚测试完非主机模式,SCL频率达到1.042MHz,赶紧把时钟调到100kHz,结

果还是读到0xFFFF…尝试了各种方法,头都大了。。。一大堆脑细胞濒临死亡。。。就在想撒手不干的时

候发现SHT21拉低SDA比拉高SCL要早上不少,好像看到希望啊!!!果断把中断改为SDA中断,果然王

天不负有心人,将中断改成SDA后第一次测试就成功了!成功了!测试发现SDA大概比SCL提前700多us

变化,但为什么换成SCL就不行呢?还请知道的朋友告诉一下,谢谢!

既然可以顺利读取数据,那就测试一下主机模式SHT21的速率,测得的各个部分信息如下:

IIC SCL 读命令时钟频率 131.5 kHz
IIC SCL 写命令时钟频率 1.042 MHz
SDA SCL 中断时间差 SDA比SCL早 774us
读取湿度&CRC-读命令时间 264us
读取湿度-读命令时间 176us
读取温度&CRC-读命令时间 264us
读取温度-读命令时间 176us
启动测湿-写命令时间 43.6us
启动测温-写命令时间 43.6us
主机模式中断时间 14bit 温度 68ms

代码请查看附件(主机模式和非主机模式的代码)

附件-代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值