本帖最后由 sdsdsd 于 2021-1-20 18:47 编辑
本人现在用51单片机驱动SHT30遇到很奇怪的问题 我用IO模拟IIC来驱动SHT30 奇怪的是当我将主频设置为11.0592MHZ,SHT30就工作不正常,但是将主频换到22.1184MHZ(更高频率应该也行,没有尝试过)时同样的代码就可以 ,起初我考虑到可能时主频影响到延时函数所延时时间的不同,因为我是用IO口模拟IIC的嘛,后来我通过STC-ISP生成不同频率下的延时函数,比如延时1us,11M和22M的函数时不同 ,这样可以确保IIC的时序基本一样(实际通过逻辑分析仪证明确实时差不多的),后来发现这样改了也不行,11M还是不行,22M就是可以,对照官方数据手册上的时序,基本也没问题.所以想请论坛内的大佬,如果可以的话,可以指点一二.非常感谢

这是11M情况下的发送命令的时序图,发送高8位时没有回应

这是22M下的时序图,发送高八位就有回应

这是上面时序所对应的程序
|