请选择 进入手机版 | 继续访问电脑版
hot【项目分享】之智能交通灯

结合前几次GPIO的简单了解和学习,今天给大家分享一个GPIO的简单应用:智能交通灯 涉及硬件:开发套件 详细

开启左侧

有关温湿度监测项目

[复制链接]
JOKER 发表于 2017-3-27 00:37:59 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
有关温湿度监测项目
悬赏1金钱 状态已解决,大家来学习学习
问题描述Question Issues
在加入UCOS操作系统前,我的程序中出现了这样的现象:
       当同时进行温湿度显示的时候,在正常显示一分钟左右,LCD1602上温湿度的值就会固定不变(多次出现),而时间的显示在不断变化,是正常的。也就是说温湿度的采集函数没用被调用。
       我的时间显示的函数是写在定时器TIM2 的中断里的,温湿度的读取和显示是写在主函数的while(1)循环中的,截图如下:
       当遇到这种问题的时候(前一段时间运行正常,运行期间发生了问题),大概的解决思路是怎样的?现在感觉没什么头绪。 捕获.JPG 2.JPG
来自群组: 室内温湿度监控项目

最佳答案

查看完整内容

这种情况在大家实现温湿度读取的过程中,会经常遇到的,原因是:某一次读取值的时候,时序发生了问题;因为DHT11对时序的要求是非常严格的,所以时序稍微有些变化就会导致读取失败。 这个时候程序会死在代码的某个地方,解决方法:程序要添加异常监测功能,发生上述情况时,要及时恢复温湿度的读写,这样才能保证温湿度采样的稳定性和可靠性。 ...
HELLO WORLD

精彩评论11

三点整 发表于 2017-3-27 00:38:00 | 显示全部楼层
本帖最后由 三点整 于 2017-3-27 15:01 编辑

         这种情况在大家实现温湿度读取的过程中,会经常遇到的,原因是:某一次读取值的时候,时序发生了问题;因为DHT11对时序的要求是非常严格的,所以时序稍微有些变化就会导致读取失败。
       这个时候程序会死在代码的某个地方,解决方法:程序要添加异常
监测功能,发生上述情况时,要及时恢复温湿度的读写,这样才能保证温湿度采样的稳定性和可靠性。

回复

使用道具 举报

 楼主| JOKER 发表于 2017-3-27 17:44:57 | 显示全部楼层
本帖最后由 三点整 于 2017-3-27 18:10 编辑

好的,仿真之后我觉得原因是时间显示的中断程序干扰了DHT11的时序,加入UCOS之后,我在DHT11读取数据的程序前后加入了临界区,保证在读取数据的时候不会进入其他中断,截图如下(加入临界后运行正常)。 f1.JPG

在不使用UCOS的时候,如果想避免这种情况,是否可以使用延时,读取数据前开启定时器,一定时间之后如果程序没有出来,则在中断函数中将DHT11 reset,但是这样就不会处理原来的申请堆栈空间,有造成内存泄漏的可能吧。我再想想有没别的方法。



      
HELLO WORLD
回复

使用道具 举报

三点整 发表于 2017-3-27 18:11:07 | 显示全部楼层
陈浩宇 发表于 2017-3-27 17:44
好的,仿真之后我觉得原因是时间显示的中断程序干扰了DHT11的时序,加入UCOS之后,我在DHT11读取数据的程序 ...

      加临界段的想法很好,这样也能解决问题,这样的话,DHT11在读取温湿度值时,不会进入中断,保证了温湿度延时函数的准确性;但是这种方法会影响整个系统的时基、中断功能等,有其他方法也能解决这个问题,可以自己再思考一下。
      如果不使用ucos的时候,你说的思路很对,但实现方法不妥,再想想有什么方法会更好;至于你说的内存泄露问题,不会发生这样的问题,放心使用。
回复

使用道具 举报

刘洁琦 发表于 2017-3-27 22:40:44 | 显示全部楼层
我之前也出现这样的问题,而且频繁的出现,后发现是使用了滴答定时器,却没有进行初始化,而且在其他地方用到了滴答定时器,这个情况影响了DHT11时序,获取数据不正常。这个问题改正后,发现情况好了许多,不过还是会在一些情况下(比如拉扯连接DHT11的杜板线)出现这个问题,调试了好半天发现是杜邦线的问题,可能是接触不好,换了杜板线以后就没出现了。
回复

使用道具 举报

三点整 发表于 2017-3-28 08:53:45 | 显示全部楼层
刘洁琦 发表于 2017-3-27 22:40
我之前也出现这样的问题,而且频繁的出现,后发现是使用了滴答定时器,却没有进行初始化,而且在其他地方用 ...

       你刚开始出现的这个问题一个就是没有初始化,导致定时时间不是我们想要的,第二个就是杜邦线接触不良,所以这两点问题要记下来,避免以后这类问题再困扰我们。
       但是,你这个问题的解决只是解决了暂时的问题,如果你长时间一直运行你的温湿度监控系统,运行几天或者几十天,或者受到外界干扰的时候,上面我们讨论的问题还是会出现的,所以,如果要想把我们的温湿度监控系统做的更好,接近工业使用要求,就必须添加异常监测及处理功能。
回复

使用道具 举报

刘洁琦 发表于 2017-3-30 16:28:53 | 显示全部楼层
三点整 发表于 2017-3-28 08:53
你刚开始出现的这个问题一个就是没有初始化,导致定时时间不是我们想要的,第二个就是杜邦线接触不 ...

好的
回复

使用道具 举报

何鑫 发表于 2017-4-8 19:07:02 | 显示全部楼层
这种问题确实是典型的错误,如果有好的方法处理这个问题请分享一下
回复

使用道具 举报

 楼主| JOKER 发表于 2017-4-9 19:50:45 | 显示全部楼层
何鑫 发表于 2017-4-8 19:07
这种问题确实是典型的错误,如果有好的方法处理这个问题请分享一下

在我的日志里有写到
HELLO WORLD
回复

使用道具 举报

何鑫 发表于 2017-4-10 16:12:09 | 显示全部楼层
JOKER 发表于 2017-4-9 19:50
在我的日志里有写到

除了临界区?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注3

粉丝4

帖子10

发布主题
阅读排行 更多
广告位
0351-8210788
周一至周日 9:00-18:00
意见反馈:mind@unigress.com
关注我们

扫一扫关注我们

Powered by Discuz! X3.4 Licensed  © 2001-2013 Comsenz Inc.( 晋ICP备12005011 )