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程序如何配置,达到我们应用的目的,算是一个基础吧。
zigbee学习之路(十三):基于协议栈的Usart 实验的更多相关文章
- zigbee学习之路(十四):基于协议栈的无线数据传输
一.前言 上次实验,我们介绍了zigbee原理的应用与使用,进行了基于zigbee的串口发送协议,但是上个实验并没有实现数据的收发.在这个实验中,我们要进行zigbee的接受和发送实验. 二.实验功能 ...
- zigbee学习之路(一):zigbee介绍
一.前言 大家好,我是一名在校的大学生,最近对zigbee非常感兴趣,于是自己从网上买了一款秉火cc2530的zigbee开发板,想通过这个平台来和大家分享自己学习和研究的经历,下面就来简单的介绍下z ...
- zigbee学习之路(十五):基于协议栈的按键实验
一.前言 经过上次的学习,相信大家已经初步学会使用zigbee协议进行发送和接受数据了.今天,我们要进行的实验是按键的实验,学会如何在协议栈里实现按键中断. 二.实验功能 在协议栈上实现按键中断,BU ...
- zigbee学习之路(十二):zigbee协议原理介绍
一.前言 从今天开始,我们要正式开始进行zigbee相关的通信实验了,我所使用的协议栈是ZStack 是TI ZStack-CC2530-2.3.0-1.4.0版本,大家也可以从TI的官网上直接下载T ...
- zigbee学习之路(十一):看门狗
一.前言 今天,我们要通过实验学习和认识一下看门狗的使用,看门狗是为了防止防止程序跑飞的,通过不断的喂狗,使看门狗能持续监管程序的运行状态,当程序跑飞时,能及时把程序拽回来. 二.原理与分析 在CPU ...
- zigbee学习之路(十):串口(接收)
一.前言 上次我们学习了串口的发送,今天我们要学习串口的接收,要实现的功能是接收电脑发来的数据,控制LED 灯闪烁,而且将收到的数据发回给电脑显示出来.而且要采用不占用cpu资源的中断. 二原理与分析 ...
- zigbee学习之路(九):串口(发送)
一.前言 今天,我们来学习和实验串口模块方面的,串口通信是我们常用的通信手段,通过串口交互,我们可以很容易的和pc机进行数据的交换和发送,所以我们今天就来学习一下.这个实验所进行的功能是一开始CC25 ...
- zigbee学习之路(八):定时器1(中断)
一.前言 通过上次的实验,我们已经学会了定时器3的中断方式,这次,我们来看看定时器1通过中断怎么控制. 二.原理分析 定时器1的初始化跟前面提到的一样,也是要配置寄存器T1CTL,还要进行开中断的操作 ...
- zigbee学习之路(七):定时器3(中断方式)
一.前言 上次我们学习了了用定时器3进行查询方式来进行溢出判断,今天我们来换一种方式,用中断方式来检测和查询定时器3的溢出. 二.原理与分析 要使用定时器3,我们必须先要配置的是T3CTL,来把定时器 ...
随机推荐
- 解决国内npm依赖包安装慢的问题
可以通过 npm config set registry http://registry.npm.taobao.org命令设置镜像服务器为阿里巴巴镜像服务器,速度会快很多,亲测有效.
- 视觉机器学习读书笔记--------SVM方法
SVM是一种二类分类模型,有监督的统计学习方法,能够最小化经验误差和最大化几何边缘,被称为最大间隔分类器,可用于分类和回归分析.支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题, ...
- android 生命周期
引入android生命周期概念来做前端的hash切换页面的思路: 1. page manager来管理多个page(一对多的关系); 2. route:URL <-> Page; 3. P ...
- MSSQL 全表搜索 指定字符串
平时在在MSSql中查询数据的时候,想查找,某个字段在数据库中是否存在,并且查询出在哪个表中,哪个字段下面,在不知道的情况下,操作起来会很麻烦,然后就写了一个sql语句,使用起来感觉挺方便的.当然了, ...
- linear-gradient----渐变
CSS3 渐变(gradient)可以让你在两个或多个指定的颜色之间显示平稳的过渡. 以前,你必须使用图像来实现这些效果,现在通过使用 CSS3 的渐变(gradients)即可实现.此外,渐变效果的 ...
- 二、oracle数据库成功安装步骤 配置监听器
Oracle数据库使用监听器来接收客户端的连接请求,要使客户端能连接Oracle数据库,必须配置监听程序. 在安装Oracle数据库时,如果选择的是"创建和配置数据库",则安装 ...
- sqlserver日志的备份与还原
----------完整备份与还原---------- --完整备份数据库--backup database studb to disk='e:\stu.bak'back ...
- Spring事务传播属性
Spring 对事务控制的支持统一在 TransactionDefinition 类中描述,该类有以下几个重要的接口方法: int getPropagationBehavior():事务的传播行为 i ...
- left join on 和where条件的放置
先看个例子 以下P1与S1是一对多的关系 结果分别是:1746,1748,1748,1277525,307 由此看出: P1 left join S1 on ... and ...是将S1表中数据先过 ...
- io与nio的区别
传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大.使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数 ...