请问我在stm32上移植了ucos,现在需要使用到DS18B20采集温度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问我在stm32上移植了ucos,现在需要使用到DS18B20采集温度相关的知识,希望对你有一定的参考价值。
DS18B20的操作时序要使用到延时,我是用ucos的延时函数还是自己循环写一个延时?
现在有个问题:假如用ucos的延时函数,如果出现更高优先级的任务,那么会将读DS18B20这个任务挂起,会破坏DS18B20的时序操作,读不出来温度。这个延时我应该怎么处理?
第二 通过任务通讯 互斥量或者邮箱 让其他任务挂起
第三 关闭中断
第四 将操作18b20的任务优先级设置高点或者操作时提升其任务优先级
延时的话可以用ucos的延时函数 也可以自己写,不过还是用ucos的好追问
谢谢你的回答
请问这是四种方法吗???
如果是,觉得第一种方法好点,至于第四种,感觉没用,又回到我原来的问题上了,提升18B20的优先级,哪怕是最高的优先级,只要使用ucos的延时,那么会去寻找第二高的优先级,并且执行,还是会破坏延时。
另外一个问题,ucos使用的时钟节拍是由STM32内部的时钟滴答定时器产生的,我设置的是1ms中断一次,是不是每次一中断就会去寻找优先级最高的任务,并且执行呢?
ucos每次都会让处于就绪态的最高优先级任务运行,用ucos的延时, 18b20这个任务被挂起,并且记录延时节拍数,节拍数在系统时钟中断中不停的减,一旦检测到延迟节拍数为0就会查看是不是需要进行任务调度,18B20的任务得以重新运行。
参考技术A DS18B20驱动程序内部还是用自己写的延时!任务之间的延时用UCOS的延时函数。UCOS2_STM32移植详细过程(汇总)
Ⅰ、概述
笔者发现一个问题,很多初学者,甚至很多工作一两年的人,他们有一种依赖的思想,就是希望从别处获取的软件代码不做任何修改,直接可以运行或者使用。笔者想说,实践才是检验真理的关键,实践才是掌握知识的方法。
笔者最近整理的关于最新UCOS2(V2.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源代码工程
官网下载(需要账号):
360云盘下载(定期更新至最新):
https://yunpan.cn/cRzcf8eSacEhE 访问密码 1235
ST标准外设库
官网下载(需要账号):
360云盘下载(定期更新至最新):
https://yunpan.cn/cSaCpGejMSfr8 访问密码 60ae
参考资料:
https://yunpan.cn/cRCdSt73GwT6j 访问密码 499e
Ⅴ、说明
相关的文章可以到我博客上查看,我也会定期更新,新内容第一时间在微信分享。
以上总结仅供参考,若有不对之处,敬请谅解。
Ⅵ、最后
更多精彩文章我讲第一时间在微信公众号里面分享。
如果你喜欢我分享的内容,你又想了解更多相关内容,请关注微信公众号“EmbeddDeveloper”,新内容持续更新中,后期将会有更多精彩内容出现。
以上是关于请问我在stm32上移植了ucos,现在需要使用到DS18B20采集温度的主要内容,如果未能解决你的问题,请参考以下文章