zoukankan      html  css  js  c++  java
  • 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. ", 19),也就是让系统执行这个任务了。这个函数也是系统写好的,我们只要知道怎么用就可以了,0代表的是串口号,中间是要发送的数据,这个我们可以自己定义,19是所发送的数据长度,需要注意的是空格和换行也算一个字符。

    三.总结

        通过以上代码配置与修改,我们就可以通过串口助手看到基于zigbee协议所发送的数据,虽然这只是一个简单的实验,但我们通过这个实验,可以了解zigbee程序如何配置,达到我们应用的目的,算是一个基础吧。

         

       

  • 相关阅读:
    改动文件名称
    十五周 项目1 工资数据的输入
    通过YAJL获取json中的值
    图数据库之Pregel
    hdu 1028 Ignatius and the Princess III
    iOS使用ffmpeg播放rstp实时监控视频数据流
    Android的Bitmap和BitmapDrawable类解析-android学习之旅(六十)
    MAC中在eclipse luna上搭建移动平台自己主动化測试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录
    QCustomPlot使用手冊(三)
    Mac下搭建react native开发环境
  • 原文地址:https://www.cnblogs.com/sjsxk/p/5365705.html
Copyright © 2011-2022 走看看