前言
DIY
回顾上期:
1、智能家居DIY连载教程(1)——如何正确使用 Sensor 框架
1. 第二周任务回顾
我们来回顾一下第二周安排的任务:
1、通过 ENV 工具获取 nrf24l01软件包,并加载到 MDK 工程里面
2、了解多线程间的通信,了解 IPC 中邮箱和消息队列的特性,并能灵活使用,实现 ds18b20 线程与 nrf24l01 线程之间的数据通信
3、修改 nrf24l01 软件包,实现多点通信功能
上述任务的重点,是要学习去灵活运用邮箱和消息队列。
2. 软件包的获取
软件包可以通过 env 工具十分方便的获取到,并且加载到工程里面去,env 工具的下载链接可以在官 找到,env 下载链接:https://www.rt-thread.org/page/download.html (请复制至外部浏览器打开)env 的使用方法可以查看这里:https://www.rt-thread.org/document/site/tutorial/env-video/进行学习。
不过该软件包现在仅仅只是获取到本地,尚未加载到 MDK 工程当中来。我们在 env 中输入 命令回车即可,执行完该命令之后打开 MDK5 工程,发现 nrf24l01 软件包成功加载到工程里面去了,如下图所示:
1、 线程如何将温度数据给 线程/p>
2、如果 线程采集温度数据过快, 线程来不及发送,怎么办/p>
3、如果 线程发送数据过快, 线程来不及采集温度数据,怎么办/p>
这时候,IPC 中的邮箱(mailbox)可以很好的解决以上问题。不过这里,我们需要将邮箱与内存池(mempool)搭配一起使用。往往而言,在实际项目中,邮箱和内存池这两个 IPC 是经常需要配套着一起使用的。为什么,且慢慢看来。
3.2 邮箱工作原理举例介绍
RT-Thread 的文档中心已经有对邮箱和内存池原理上的详细讲解。这里不在赘述。这里通过举一个生活中的例子,去帮助大家理解邮箱和内存池。
如今,很多人购物都是通过电商平台购买,那避免不了是要收快递的。
将温度数据存放到刚刚申请到的内存块里面:
将这个存放着温度数据的内存块的地址给邮箱,然后发送邮件:
线程的入口函数是 ,如下:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!