建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
直达楼层
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

采纳成功

您已采纳当前回复为最佳回复

樊心昊

发帖: 172粉丝: 139

发消息 + 关注

发表于2020年05月20日 00:04:21 1403 4
直达本楼层的链接
楼主
显示全部楼层
[技术干货] 0x06 LiteOS_Lab仓库组件详解--AT框架总结

摘要:由于前面几篇文章都属于源码级解析,本篇文章带领大家实践使用整个AT框架,将前面的知识串联在一起讲解,让大家能真正将AT框架运用到实际开发当中。

 

初始化:

image.png

我们的初始化流程和上图一致,由下到上进行初始化。

1.     在Uart.c文件实现将uart注册进driver层中的函数并调用宏定义等待初始化driver层时自动注册:

image.png

 

2.     调用driver层中的初始化函数,初始化driver层并自动注册之前用OSDRIV_EXPORT注册的设备。

image.png

现在at层就可以使用driver.h中提供的设备初始化、读、写等函数了

 

3.     调用at层中的初始化函数,该初始化中创建了一个用于接收数据的任务,并在任务的一开始就调用driver层中的设备初始化函数对串口设备进行了初始化,然后循环检测串口设备中是否有数据,并判断这些数据是否是我们需要的。

image.png

4.     调用at_oobregister将我们关心的关键词和其对应的处理函数注册进at框架,只要at框架中的接收任务发现串口设备中出现了该关键词,就会自动调用相应的处理函数。

image.png

当nbiot收到CDP服务器(BC28模块+LWM2M协议)下发的数据就会给单片机发送一条以“\r\n+NNMI:“字符串开头,数据为+NNMI:x,str的异步消息,告诉单片机:“我收到了一条服务器下发的数据,第x号网络接口,内容为str字符串,你准备来解析吧。”at框架中的接收任务就会自动调用刚才我们注册好的”boudica150_rcvdel函数进行解析。”

 

我做了一个实验,通过华为设备接入服务中的“在线调试”,下发一个数据为10进制的4660,也就是16进制的0x1234,实验结果如下图所示:

这是在线调试下发命令的截图:

image.png

这是BC28收到数据的截图:

image.png

使用AT框架中提供的函数来收发AT指令:

image.png



PS:到这里AT框架就算讲解完毕了,大家有啥问题欢迎留言,希望大家能享受组件化编程带来的乐趣!


举报
分享

分享文章到朋友圈

分享文章到微博

采纳成功

您已采纳当前回复为最佳回复

极客潇

发帖: 477粉丝: 68

发消息 + 关注

发表于2020年05月21日 08:42:29
直达本楼层的链接
沙发
显示全部楼层

感谢楼主分享

点赞 评论 引用 举报

采纳成功

您已采纳当前回复为最佳回复

scu-w

发帖: 333粉丝: 9

发消息 + 关注

发表于2020年05月25日 17:55:00
直达本楼层的链接
板凳
显示全部楼层

感谢分享呀

点赞 评论 引用 举报

采纳成功

您已采纳当前回复为最佳回复

我是卤蛋

发帖: 121粉丝: 292

级别 : 版主,版块专家

发消息 + 关注

发表于2020年06月26日 11:10:55
直达本楼层的链接
地板
显示全部楼层

感谢分享,持续学习~

点赞 评论 引用 举报

采纳成功

您已采纳当前回复为最佳回复

o0龙龙0o

发帖: 253粉丝: 29

发消息 + 关注

发表于2020年11月27日 10:24:13
直达本楼层的链接
5#
显示全部楼层

OSDRIV_EXPORT 这个的定义我在SDK中没有知道的,driver.h这个问价我也没找到

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册

结贴

您对问题的回复是否满意?
满意度
非常满意 满意 一般 不满意
我要反馈
0/200