NB-IOT开发|nbiot开发教程《一》AT指令类模组驱动解析

嵌入式开发中我们要时刻保持代码的高效与整洁

看之前,先点赞
好习惯,要养成

一、前言

        嵌入式开发中我们要时刻保持代码的高效与整洁。NBIOT的出现带动了物联网行业的火爆,物联网行业似乎总是离不开NBIOT。但是,我将NBIOT归为AT指令模组一类,这一类模组没有什么高深之处,也没有深度可言。但是想要很好的使用AT指令模组却是一件不简单的事情。想要很灵活的使用AT指令的模组需要用到状态机。

AT指令类模组包括:nb-iot模组,gprs模组,wifi模组,LoRa串口透传模组等等,设计很多,应用广泛。

二、AT指令类模组总结

       AT指令类模组的使用步骤可以分为:模组初始化和模组收发数据。我们翻开模组的手册可以发现,模组的初始化就是一个状态到另一个状态之间的切换,每一时刻该对象必须处于且只能处于其中一种状态中。

                 

三、状态机原理

      状态机的定义网上有很多,我主要说一下状态机的工作原理。

                                     

       状态机组成:状态(state),事件(event)和动作(action);

四、AT指令模组状态机工作原理

          前面说了状态机组成:状态(state),事件(event)和动作(action);

AT指令模组状态机原理:

状态:1.发送AT确认模组是否正常;2.配置模组参数;3.发送数据;(暂定三个状态)

动作:1.发送AT确认模组是否正常->通过串口发送AT\r\n,模组正常会返回OK,模组不正常返回非OK数据或者不返回。

        2.配置模组参数->通过串口发送AT+PARAM=10\r\n,模组正常会返回OK,模组不正常返回非OK数据或者不返回。

        3.发送数据->通过串口发送AT+SEND=2030559498473738292929394\r\n,模组正常会返回OK,模组不正常返回非OK数据或者不返回。

 事件:状态机进行状态切换需要事件驱动。

       事件1:状态强制切换事件(event_change_state),用于将状态机强制切换到某个指定状态或者下一状态。

       事件2:串口接收到完整数据包事件(event_uart_data),模组返回数据。

       事件3:超时事件(event_timeout),例如发送AT后模组在1s或者指定时间内没有返回任何数据。

五、STM32实现AT指令模组状态机条件

       STM32或者其他MCU实现该状态机需要用到

       1.串口可以接受不定长度的数据

       2.软件定时器。

      下面章节会详细介绍串口接收不定长度数据和AT指令类状态机实现。

       NB-IOT开发|nbiot开发教程《二》AT指令类模组驱动-STM32串口实现接收不定长度数据

       NB-IOT开发|nbiot开发教程《三》AT指令类模组驱动-STM32实现AT指令状态机

  • 21
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值