新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于STM32+ucos-II+DS18B20調(diào)試成功

基于STM32+ucos-II+DS18B20調(diào)試成功

作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
前幾天調(diào)試了一下DS18B20的程序,起初系統(tǒng)在裸奔的時(shí)候DS18B20可以很正常的讀取數(shù)據(jù)。由于項(xiàng)目前期設(shè)計(jì)時(shí)添加了ucos實(shí)時(shí)操作系統(tǒng)。原以為把裸奔的程序移植過(guò)來(lái)就可以使用。結(jié)果悲劇發(fā)生了……如果做過(guò)這方面的朋友一定知道。添加后,你會(huì)發(fā)現(xiàn)系統(tǒng)不跑了,徹底的死掉了。原因在何處?經(jīng)過(guò)一整天的查找,發(fā)現(xiàn)原來(lái)系統(tǒng)的時(shí)間片被占用了。導(dǎo)致ucos的ticks出現(xiàn)異常。

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

本文引用地址:http://m.butianyuan.cn/article/201611/317178.htm

還有一種方法就是,把18B20的延時(shí)定時(shí)器更換成TIM3或者是其他定時(shí)器。和系統(tǒng)的tick分開(kāi)。即可解決。



關(guān)鍵詞: STM32ucos-IIDS18B2

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉