DSP如何采集DHT11的信号-------急需,谢谢!

2019-03-26 15:21发布

本帖最后由 qingtenglei 于 2015-9-7 15:53 编辑

各位大神好!最近 小妹正在调试DHT11的温湿度显示,从DHT11的输出管脚可以看到有波形,但是DSP2812这边不知 如何处理并显示 出来。单步执行时发现根本进不了循环,直接跳过了。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
qingtenglei
1楼-- · 2019-03-27 14:04
[code]unsigned char COM(void)
{
        unsigned char i,U8comdata=0;

        for(i=0;i<8;i++)
        {
                U8FLAG=2;
                while((DATA==0)&&U8FLAG++);
                DELAY_US(30);
                U8comdata=U8comdata<<1;
                if(DATA==1){


                U8FLAG=2;
                U8comdata=U8comdata|0x01;
                while((DATA==1)&&U8FLAG++);
                }
        }
        return U8comdata;
}
在while((DATA==1)&&U8FLAG++);就出不去了
qingtenglei
2楼-- · 2019-03-27 16:33
 精彩回答 2  元偷偷看……
qiushenghua
3楼-- · 2019-03-27 21:19
while((DATA==1)&&U8FLAG++);
——这样的语句你从哪看来的?想实现什么功能?怎么越看越觉得怪怪的呢?

while里面是空语句,那么只有当while失效的时候会跳出
DATA==1如果成立,你们这半句就恒真,如果DATA==0,那么这半句恒假,和后面语句逻辑与之后亦假,直接失效跳出。

那么我们看如果DATA==1,那么它会在什么时候失效跳出吧
后面半句U8FLAG++,U8FLAG初值2,每执行一次空循环自增1,不管U8FLAG等于多少,只要它不是0那么就算逻辑真,那么它什么时候会等于0呢?只有当U8FLAG溢出的时候才能等于0。但是,你将一个变量从2自增到溢出,又不调用这个变量,反正我没看懂你想实现什么功能……
qingtenglei
4楼-- · 2019-03-28 02:00
 精彩回答 2  元偷偷看……
qingtenglei
5楼-- · 2019-03-28 06:51
网上说DSP不能直接采TTL电平,要加什么滞回电路。我在想是不是我没有将信号保存还是怎么的?
骑文
6楼-- · 2019-03-28 08:48
qingtenglei 发表于 2015-9-9 10:27
在if那就进不去,改成1进去后 while((DATA==1)&&U8FLAG++);跳不出。

想问一下,楼主问题解决了吗,我最近也在做这个小项目,也是在If那里进不去,到现在都不知道怎么回事

一周热门 更多>