求助dht11在ucosII下使用问题

2019-07-20 04:10发布

我用dht11传感器在stm32f7上进行温湿度采集,在ucosII下,新建一个task,定时200ms获取一次,可以读取数据,但是我一切换到网络部分的时候,就加了一个task调用,屏幕显示摄像头采集的图像,然后温湿度数据就不刷新了,调试去看读取的数据都是错误的都是ff,dht11用的是历程移植过来的,查了一些资料说是采集的时候关闭任务调度,我也试着关闭了,可是还不好使,有没有大神有好的办法,帮忙解惑,感激不尽[mw_shl_code=c,true]void led_task(void *pdata)
{
        OS_CPU_SR cpu_sr;
        u8 temperature;              
        u8 humidity;  
        while(1)
        {
                LED0_Toggle;
                OSTimeDlyHMSM(0,0,0,100);  //Ñóê±500ms
        //        OS_ENTER_CRITICAL();          //1ØÖD¶Ï
                OSTimeDlyHMSM(0,0,0,2);
                DHT11_Read_Data(&temperature,&humidity);                //¶áè¡ÎÂêa¶èÖμ       
                OSTimeDlyHMSM(0,0,0,2);
//                OS_EXIT_CRITICAL();                  //¿aÖD¶Ï
                LCD_ShowString(30,270,200,16,16,"Temp:  C");       
                LCD_ShowString(30,290,200,16,16,"Humi:  %");
                LCD_ShowNum(30+40,270,temperature,2,16);                //ÏÔê¾ÎÂ¶è                                  
                LCD_ShowNum(30+40,290,humidity,2,16);                        //ÏÔê¾êa¶è
               
       
        }
}
[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
kbq1950361006
1楼-- · 2019-07-20 06:20
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-20 08:18
读取dht11的延时,有加禁止中断么?没的话,加一下。
WUKONG
3楼-- · 2019-07-20 08:31
 精彩回答 2  元偷偷看……
kbq1950361006
4楼-- · 2019-07-20 12:17
WUKONG 发表于 2019-1-10 15:37
您好,我在做毕设,也遇到了类似的问题,在裸机上DTH11读取数据完全没问题,但是在ucosiii系统上运行时, ...

时间挺久了,确实是操作系统影响时序的问题,你把dht11刷新的函数放在一个任务很空闲的任务里,好像还有一个地方,是dht11发送寄存器指令函数中有个延时要延时20ms
WUKONG
5楼-- · 2019-07-20 15:23
kbq1950361006 发表于 2019-1-11 15:11
时间挺久了,确实是操作系统影响时序的问题,你把dht11刷新的函数放在一个任务很空闲的任务里,好像还有 ...

我的读取数据任务没有加其他的功能,就只是读取数据好显示,延时20ms我加了,好像还是不行,谢谢你啊
WUKONG
6楼-- · 2019-07-20 18:06
 精彩回答 2  元偷偷看……

一周热门 更多>