欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3043|回復: 4
打印 上一主題 下一主題
收起左側

基于STM32+ucos-II+DS18B20調試成功

[復制鏈接]
跳轉到指定樓層
樓主
ID:79874 發表于 2020-2-2 19:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
前幾天調試了一下DS18B20的程序,起初系統在裸奔的時候DS18B20可以很正常的讀取數據。由于項目前期設計時添加了ucos實時操作系統。原以為把裸奔的程序移植過來就可以使用。結果悲劇發生了……如果做過這方面的朋友一定知道。添加后,你會發現系統不跑了,徹底的死掉了。原因在何處?經過一整天的查找,發現原來系統的時間片被占用了。導致ucos的ticks出現異常。


解決辦法:一種方法是:修改OS_CPU_SysTickInit(void)函數,與delay函數進行兼容。在溫度傳感器延時的時候不影響操作系統的tick運行。這樣就可以解決問題了。


還有一種方法就是,把18B20的延時定時器更換成TIM3或者是其他定時器。和系統的tick分開。即可解決。

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:79874 發表于 2020-2-2 20:01 來自觸屏版 | 只看該作者
CPU_CRITICAL_ENTER();         
  讀取18b20;
  CPU_CRITICAL_EXIT();
回復

使用道具 舉報

無效樓層,該帖已經被刪除
地板
ID:79874 發表于 2020-2-3 08:47 來自觸屏版 | 只看該作者
認同二樓看法,DS18B20上見過類似情況,

OS_ENTER_CRITICAL();
XXXXXXXXXXXX
OS_EXIT_CRITICAL();

如上方法可解決。

你這情況有些蹊蹺了,如果問題不在中斷/delay上,也許是因為死鎖。
不過死鎖一般出現在復雜的系統上,DHT11發生死鎖也不應該啊。
回復

使用道具 舉報

5#
ID:752705 發表于 2020-5-31 17:38 | 只看該作者
學習一下,在哪里看代碼
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表