请问我在stm32上移植了ucos,现在需要使用到DS18B20采集温度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问我在stm32上移植了ucos,现在需要使用到DS18B20采集温度相关的知识,希望对你有一定的参考价值。

DS18B20的操作时序要使用到延时,我是用ucos的延时函数还是自己循环写一个延时?
现在有个问题:假如用ucos的延时函数,如果出现更高优先级的任务,那么会将读DS18B20这个任务挂起,会破坏DS18B20的时序操作,读不出来温度。这个延时我应该怎么处理?

第一 读取18B20的时候关闭任务切换,不进行任务调度
第二 通过任务通讯 互斥量或者邮箱 让其他任务挂起
第三 关闭中断
第四 将操作18b20的任务优先级设置高点或者操作时提升其任务优先级
延时的话可以用ucos的延时函数 也可以自己写,不过还是用ucos的好追问

谢谢你的回答
请问这是四种方法吗???
如果是,觉得第一种方法好点,至于第四种,感觉没用,又回到我原来的问题上了,提升18B20的优先级,哪怕是最高的优先级,只要使用ucos的延时,那么会去寻找第二高的优先级,并且执行,还是会破坏延时。
另外一个问题,ucos使用的时钟节拍是由STM32内部的时钟滴答定时器产生的,我设置的是1ms中断一次,是不是每次一中断就会去寻找优先级最高的任务,并且执行呢?

追答

ucos每次都会让处于就绪态的最高优先级任务运行,用ucos的延时, 18b20这个任务被挂起,并且记录延时节拍数,节拍数在系统时钟中断中不停的减,一旦检测到延迟节拍数为0就会查看是不是需要进行任务调度,18B20的任务得以重新运行。

参考技术A DS18B20驱动程序内部还是用自己写的延时!任务之间的延时用UCOS的延时函数。

UCOS2_STM32移植详细过程(汇总)

Ⅰ、概述

笔者发现一个问题,很多初学者,甚至很多工作一两年的人,他们有一种依赖的思想,就是希望从别处获取的软件代码不做任何修改,直接可以运行或者使用。笔者想说,实践才是检验真理的关键,实践才是掌握知识的方法。

 

笔者最近整理的关于最新UCOS2V2.92)移植在STM32开发平台上,针对初学者将STM32F0、F1、F3、F4几个硬件平台的移植工作都做好了,只需要适当修改一下你硬件型号就可以运行UCOS操作系统程序了。

 

Ⅱ、UCOS移植文章

下面这四篇文章主要是针对初学者,将源代码下载、工程整理、源代码修改及描述等众多细节都在文章中描述有,欢迎进入我博客查看。

关于系统及其资源(信号量、事件、消息邮箱、队列等)我将在后期整理出相关文章,敬请关注微信等待。

 

UCOS2_STM32移植详细过程(一):

http://blog.csdn.net/ybhuangfugui/article/details/51760171

 

UCOS2_STM32移植详细过程(二):

http://blog.csdn.net/ybhuangfugui/article/details/51765206

 

UCOS2_STM32移植详细过程(三):

http://blog.csdn.net/ybhuangfugui/article/details/51781779

 

UCOS2_STM32移植详细过程(四):

http://blog.csdn.net/ybhuangfugui/article/details/51789661

 

Ⅲ、实例软件工程

下面提供的软件工程都是笔者在开发板上多次测试、运行,没有问题才上传至360云盘,欢迎下载学习。

笔者强调一点:如果你想学习UCOS的开发,请不要局限你的硬件(开发板芯片型号),工程只要适当配置一下,工程就可以在你的开发板运行起来了。

 

UCOS基于STM32F0系列实例:

https://yunpan.cn/cByHFxCfpaIbh  访问密码

 

UCOS基于STM32F1系列实例:

https://yunpan.cn/cByHum5BStkEK  访问密码

 

UCOS基于STM32F3系列实例:

https://yunpan.cn/cByHrMmkekIar  访问密码

 

UCOS基于STM32F4系列实例:

https://yunpan.cn/cByHx47jehTgX  访问密码

 

Ⅳ、相关下载

下面提供的下载也是笔者近期整理的,如果怕麻烦可以在笔者360云盘下载。笔者也是基于下面下载的文件一步一步移植的UCOS,如果你想真正掌握UCOS,请你也下载下面的工程来一步一步移植,相信你移植成功之后你会学到更多知识。

 

UCOS源代码工程

官网下载(需要账号):

https://www.micrium.com/downloadcenter/download-results/?searchterm=hm-stmicroelectronics&supported=true

 

360云盘下载(定期更新至最新):

https://yunpan.cn/cRzcf8eSacEhE  访问密码 1235

 

ST标准外设库

官网下载(需要账号):

http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software.html?querycriteria=productId=SC961

 

360云盘下载(定期更新至最新):

https://yunpan.cn/cSaCpGejMSfr8  访问密码 60ae

 

参考资料:

https://yunpan.cn/cRCdSt73GwT6j  访问密码 499e

 

Ⅴ、说明

相关的文章可以到我博客上查看,我也会定期更新,新内容第一时间在微信分享。

以上总结仅供参考,若有不对之处,敬请谅解。

 

Ⅵ、最后

更多精彩文章我讲第一时间在微信公众号里面分享。

如果你喜欢我分享的内容,你又想了解更多相关内容,请关注微信公众号EmbeddDeveloper,新内容持续更新中,后期将会有更多精彩内容出现。

 

以上是关于请问我在stm32上移植了ucos,现在需要使用到DS18B20采集温度的主要内容,如果未能解决你的问题,请参考以下文章

请问一个ucos问题?

stm32f407移植ucos怎么把ucos放在stm32上?

STM32开发 -- UCOSII移植

STM32开发 -- UCOSII移植

STM32开发 -- UCOSII移植

STM32开发 -- UCOSII移植