zigbee學習之路(十三):基於協議棧的Usart 實驗


一.前言

    這次實驗我們來學習基於zigbee的串口通信實驗,揭開zigbee神秘的面紗,讓大家可以用zigbee協議編制屬於自己的程序,這次實驗只是串口發送數據,並沒有進行無線的數據傳輸,為的是使大家熟悉zigbee協議棧工作的流程,復雜的實驗以后會進行,循序漸進嘛。

二.代碼講解

    大家還記得裸機實驗里怎么使用串口功能的嗎?我們裸機使用串口功能的步驟是:

    (1) 串口初始化;
    (2) 執行任務(發送/接收)。

   其實,跟裸機實驗里的串口實驗一樣,本實驗也是按照同樣的步驟來進行的,第(1)步不變;在第(1)步和第(2)步之間需要多做了一步,就是:給它登記一下;第(2)步照樣執行。所以,本實驗使用串口的具體步驟是:

   (1) 串口初始化;
   (2) 登記任務號;

   (3)  執行任務。

  下面分別介紹各個步驟:

        跟裸機的實驗一樣,我們也要配置串口號、波特率、流控,校驗位等,以前我們要配置相關的寄存器,現在我們可以直接通過庫函數來控制。打開MT_UART.c。然后找到

MT_UartInit ()函數。

 

MT_UartInit ()函數如下面的代碼所示

  

    我們可以看出,這跟我們普通的串口配置沒有太大區別,都是要配置串口所需要的初始化,在這個實驗中,我們要修改的就是波特率和流控制,波特率要修改和配置成115200,和連接串口的上位機保持一致,流控制也要關閉,賦值false,因為我們只需要用到RX、TX 兩根線,所以不需要額外的流控制。修改完之后,我們在SampleApp_Init( uint8 task_id )函數調用配置好的MT_UartInit ()函數;然后,記得在SampleApp.c 文件開頭的地方將圖所示的頭文件include 進去。

   

登記任務號

      這也是跟裸機串口發送有所區別的地方,只有登記了任務號,系統才會執行這個函數的功能,相當於去旅店住房要去登記一樣,服務員會根據客房情況給你安排房間。登記任務號我們是用MT_UartRegisterTaskID(task_id)函數,來登記串口方面的任務號。

執行任務

     緊接着MT_UartRegisterTaskID(task_id)函數,在其后面添加函數HalUARTWrite(0,"The test is Usart.\n", 19),也就是讓系統執行這個任務了。這個函數也是系統寫好的,我們只要知道怎么用就可以了,0代表的是串口號,中間是要發送的數據,這個我們可以自己定義,19是所發送的數據長度,需要注意的是空格和換行也算一個字符。

三.總結

    通過以上代碼配置與修改,我們就可以通過串口助手看到基於zigbee協議所發送的數據,雖然這只是一個簡單的實驗,但我們通過這個實驗,可以了解zigbee程序如何配置,達到我們應用的目的,算是一個基礎吧。

 

     

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM