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 篇原創文章 · 獲贊 16 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章