百问网--七天物联网课程学习笔记(6)

 

现在来看这个需求,在上了前面的课程后,相信大家心里已经有了实现它的方法脉络了
我们对于mini开发板和阿里云服务器的MQTT设备建立通信,有两种方案来实现:单任务和多任务 

 

在只使用一个任务的这个情况下,代码逻辑和裸机其实差不多了
而多任务方案,就是将控制的外设都各自分配一个任务来控制 

 

对于单任务控制LED和读取按键我没有多说,因为和裸机控制差不多,比较简单

我想给大家讲的是FreeRTOS下多任务消息、数据互通的机制以及我在调试过程中因为疏漏遇到的bug

发出任务通知的API,其参数的解释我给大家翻译成中文放到表里面了

我们认为控制LED,只需要让LED任务能够获取到一个具体确切的控制通知即可,不需要复杂的置位、递增等

而且,即便led任务漏掉一次通知,也无所谓,所以采用了覆盖写任务通知的那个动作

但是我们可以完善,我们可以在上层发出控制LED指令后,去读取LED的状态,看LED是否真的根据控制指令做出了对应的响应

这就需要给LED加一个能读取状态的底层驱动以及在上层平台层做对应封装了

而且也要考虑我们是否可以用【不过滤写任务通知 】来规避下这种情况

既然一个任务就可以实现,为何不用裸机模式要用FreeRTOS?
①因为业务逻辑过于简单,因而才可以一一个任务就可以完成;
②物联网应用中通常涉及多种传感器、多条数据流,用RTOS能够
③Paho MQTT已经为我们实现了基于FreeRTOS的C库,节约开发时间; 

 

 关于具体调试的一些问题,我会在下一篇文章一起总结

以上为学习百问网的【7天物联网智能家居】课程的学习笔记,百问网的老师的视频课还有文字直播课,能把问题讲的很清楚,QQ群内的答疑也很及时,适合新手入门和提高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值