1. 程式人生 > >【原創】基於STM32+ucos-II+DS18B20除錯成功

【原創】基於STM32+ucos-II+DS18B20除錯成功

前幾天除錯了一下DS18B20的程式,起初系統在裸奔的時候DS18B20可以很正常的讀取資料。由於專案前期設計時添加了ucos實時作業系統。原以為把裸奔的程式移植過來就可以使用。結果悲劇發生了……如果做過這方面的朋友一定知道。新增後,你會發現系統不跑了,徹底的死掉了。原因在何處?經過一整天的查詢,發現原來系統的時間片被佔用了。導致ucos的ticks出現異常。

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

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

作者:小盒子
時間:2011.08.26
地點:大連

注:本文屬小盒子原創,轉載請註明出處,謝謝合作!