zstack 串口使用指南
- 格式:rtf
- 大小:81.00 KB
- 文档页数:7
Zstack协议栈对串口进行操作Zstack协议栈中如何对串口进行操作想要使用串口功能,首先要进行初始化操作:halUARTCfg_t uartConfig;uartConfig.configured = TRUE; // 2x30 don't care - see uart driver.uartConfig.baudRate = SERIAL_APP_BAUD;uartConfig.flowControl = TRUE;uartConfig.flowControlThreshold = SERIAL_APP_THRESH; // 2x30 don't care - see uart driver.uartConfig.rx.maxBufSize = SERIAL_APP_RX_SZ; // 2x30 don't care - see uart driver.uartConfig.tx.maxBufSize = SERIAL_APP_TX_SZ; // 2x30 don't care - see uart driver.uartConfig.idleTimeout = SERIAL_APP_IDLE; // 2x30don't care - see uart driver.uartConfig.intEnable = TRUE; // 2x30 don't care - see uart driver.uartConfig.callBackFunc = SerialApp_CallBack; HalUARTOpen (SERIAL_APP_PORT, &uartConfig);程序首先定义了halUARTCfg类型的变量uartConfig,用来配置跟串口功能相关的波特率、流控制等等,其中最重要的是uartConfig.callBackFunc=SerialApp_CallBack。
Zstack入门教程第一步:安装Zstack从TI官方网站上下载的Zstack为:swrc072c.zip,我想这个压缩包大家都认识。
解压之后为:ZStack-CC2430-1.4.3.exe文件。
这个安装文件大家都会了。
默认安装路径为:C:\Texas Instruments\ZStack-1.4.3。
安装之后在C:\Texas Instruments\ZStack-1.4.3目录下有各PDF 文档为:Getting Started Guide CC2430.pdf,不用多说,这个肯定是要看的。
既然把它放到这么前面,说明它是入门中的入门文档。
下面就简单介绍下这个文档:1、介绍了安装ZStack-CC2430-1.4.3.exe需要的硬件软件条件:需要电脑、操作系统为Windows 2000或Windows XP。
至于更高或更低版本的本人没有尝试。
2、讲了安装流程。
这个有点多余了,这年月哪个有电脑的没有安装上百上千次的软件啊?但是需要强调的是安装路径----默认就好!3、接下来就是让我们看的第一个文档为:Start->Programs->Texas Instruments->ZStack-1.4.3->Z-Stack User’s Guide,既然让我看我就来看看这个文档!!第二步:Z-Stack 用户指导这个文档的更新时间为:2007年12月21日----应该还是比较新的版本。
由于本人英文的却有限,就不翻译了,浏览一遍,把大概意思说下就可以了:1、介绍1.1、适用范围本文档适用于CC2430ZigBee开发板----CC2430ZDK。
2、产品包描述(TI提供的CC2430ZDK工具包)2.1、安装包内容这个就是上面提到的的ZStack-CC2430-1.4.3.exe安装之后的所有内容了。
说白了就是包含Zstack开发所需要的所有软件和文档资料等。
2.2、开发板介绍两块SmartRF04EB 评估版,每个都可以用于CC2430EM评估模块。
【⽆线通信篇Zstack协议栈】CC2530ZigbeeZstack协议栈组⽹项⽬及详细讲解篇物联⽹⽆线通信技术,ZigBee⽆线传感⽹络CC2530最⼤的特点就是⼀个拥有⽆线收发器(RF)的单⽚机,既能实现单⽚机功能,也能实现⽆线传输Zstack协议栈是ZigBee协议栈⾥的翘楚,是ZigBee组⽹的⾸选协议栈项⽬实现功能:l 总共有三个端点,⼀个协调器和两个终端节点l 终端节点1连接DHT11温湿度传感器,定时上传给协调器l 终端节点2连接LED,可以通过协调器按键控制,定时上报LED开关状态l 协调器连接12864 OLED 屏幕,实时显⽰温湿度和LED状态l 协调器可以通过按键控制终端2的LED开关,控制后将会显⽰控制结果扩展功能(当前未实现,可进⼀步开发实现):l 连接协调器串⼝,将终端节点采集的数据通过串⼝发送,PC写上位机实现数据展⽰l 连接WIFI或者4G模块,WIFI模块如ESP8266,实现数据局域⽹⽆线传输或者上传到OneNET、机智云、阿⾥云、⾃⼰开发云服务器等,实现WEB或⼿机APP显⽰和控制。
⼀、项⽬测试(可想⽽知,⼴州的天⽓有多热,39℃了都)实现功能汇总:l 总共有三个端点,⼀个协调器和两个终端节点l 终端节点1连接DHT11温湿度传感器,定时上传给协调器l 终端节点2连接LED,可以通过协调器按键控制,定时上报LED开关状态l 协调器连接12864 OLED 屏幕,实时显⽰温湿度和LED状态l 协调器可以通过按键控制终端2的LED开关,控制后将会显⽰控制结果(⼀) 环境汇总芯⽚:CC2530F256Zstack协议栈:ZStack-CC2530-2.5.1a编程环境:IAR(⼆) 引脚分配协调器:128*64 OLED 0.96⼨屏幕供电:3.3V通信协议:IIC引脚:SDA P0_6SCL P0_7按键:IO:P0_1下降沿触发中断终端1:DHT11:通信⽅式:单总线协议供电:3.3VIO:P0_6终端2:LEDIO:P1_0说明:⾼电平点亮,低电平熄灭⼆、基础认识(⼀) CC2530单⽚机CC2530最⼤的特点就是⼀个拥有⽆线收发器(RF)的单⽚机,既能实现单⽚机功能,也能实现⽆线传输。
「ZigBee模块」协议栈-Z-Stack协议栈基础和数据传输实验花了好久写的...感觉还不错的呢...如果看,请细看...Mua~Z-Stack协议栈基础和数据传输实验一、实验目的终端节点将数据无线发送到协调器,协调器通过串口将数据发送到PC端,并在屏幕上显示出来。
串口优化把有线串口传输改为无线蓝牙传输。
二、实验平台硬件:2个zigbee节点,1个编译器,1根方口转USB数据线,一个蓝牙模块软件:实验基于SampleApp工程进行。
三、实验步骤1.串口初始化代码2.发送部分代码3.接收部分代码四、协议栈基础做实验之前先了解一点关于协议栈的基础知识吧~什么是协议栈?我们知道使用Zigbee一般都要进行组网、传输数据。
可想而知其中的代码数量是非常庞大的,如果我们每次使用zigbee都需要自己写所以代码的话,会非常麻烦。
因此就有了协议栈。
可以说它是一个小型的操作系统,把很多通信、组网之类的代码都封装起来了。
我们要做的只是通过调用函数来实现我们的目的。
来看一下协议栈的工作流程图(图1)。
然后我会对照流程图对协议栈进行简单的分析。
图1我们就从流程图的“开始”开始分析吧~打开工程文件SampleApp,main函数是程序执行的开始,我们要先找到它。
Main函数在ZMAin文件夹的ZMain.c下,打开它,找到main函数。
main();浏览一下main函数可以看到一开始都是各种初始化函数,即对应流程图中的“各种初始化函数”。
初始化中我们需要注意的是“osal_init_system();”初始化操作系统函数。
等一下会对它进行说明。
继续看下去,“osal_start_system();”这是执行操作系统函数,对应流程中的“运行操作系统”。
注意这个函数进去之后是不会再返回的。
总结main函数就是初始化和执行操作系统两个部分。
我们再来分析一下“osal_init_system();”这个函数,它的功能是初始化操作系统。
协议栈串口的DMA模式以下修改皆基于ZStack-CC2530-2.3.0-1.4.0版本:1.串口的初始化根据底板的引脚分配,我们用的是串口的UART0的Alt2方式。
需要修改的地方:(1)将option里预编译选项,ZTOOL_P1改成ZTOOL_P2,使#define HAL_UART_DMA 2为真。
(2)_hal_uart_dma.c的HalUARTInitDMA函数是对UART引脚以及寄存器的操作,修改如下:在HAL_UART_DMA == 2情况下的//#define HAL_UART_Px_RTS 0x20 // Peripheral I/O Select for RTS.//#define HAL_UART_Px_CTS 0x10 // Peripheral I/O Select for CTS.//屏蔽上两句,是因为该底板没有分配RTS和CTS的引脚#define HAL_UART_PERCFG_BIT 0x01 // USART0 on P1, Alt-2; so set this bit. //这里是将串口设置为UART0的Alt2方式#define HAL_UART_Px_RX_TX 0x30 // Peripheral I/O Select for Rx/Tx.//此处设置RX,TX引脚为P1_4,P1_5(3)在osal_init_system里osalInitTasks下MT_TaskInit的MT_UartInit(),是对串口的配置但要将uartConfig.flowControl = MT_UART_DEFAULT_OVERFLOW;改为uartConfig.flowControl = FALSE;协议栈默认的流控制是TRUE。
2. 串口的事件处理//系统主循环void osal_start_system( void ){……Hal_ProcessPoll(); // 串口与定时器轮询函数……}//定时器与串口轮询函数void Hal_ProcessPoll (){…….#if (defined HAL_UART) && (HAL_UART == TRUE)HalUARTPoll();#endif……}//串口轮询函数void HalUARTPoll( void ){#if HAL_UART_DMAHalUARTPollDMA();//根据DMA的方式选择DMA的轮询方式#endif……}//DMA串口轮询函数static void HalUARTPollDMA(void){……//以上是检查rxbuf里是否有数据写入,并对uartDMACfg_t dmaCfg结构体赋值if (evt && (dmaCfg.uartCB != NULL)){dmaCfg.uartCB(HAL_UART_DMA-1, evt);}//执行回调函数}注:回调函数dmaCfg.uartCB的初始化在HalUARTOpenDMA的第一句代码:dmaCfg.uartCB = config ->callBackFunc;而halUARTCfg_t uartConfig结构体的初始化在MT包里的MT_UART.c的MT_UartInit ()中1)typedef struct{bool configured;uint8 baudRate;bool flowControl;uint16 flowControlThreshold;uint8 idleTimeout;halUARTBufControl_t rx;halUARTBufControl_t tx;bool intEnable;uint32 rxChRvdTime;halUARTCBack_t callBackFunc;}halUARTCfg_t;该结构体是UART的配置结构体,设置UART的波特率,流控制,回调函数等等。
好久没写了,今天正式回归,这次要用到串口了,一到用的时候我就发现自己傻逼了,很多东西在脑海里乱七八糟的,有很多简单的问题还没搞清楚,管它呢,先把这些幼稚的问题搞清楚再说。
(1)在z-stack中应用串口有几种方式?哪位大侠有答案。
(2)关于中断和DMA方式有何区别?(3)我想用中断方式,该怎么用??这些问题很幼稚,但我还不懂,杯具了。
看了网上的资料,转载如下(抄袭的滋味真不好受啊):串口接收发送数据有两种方式,一种是中断的模式,另一种是DMA方式,这里主要以中断的方式,来看一下使用串口来发送,接收数据的整个流程。
这里以SerialApp例程为例子。
在mian函数中的调用HalDriverInit();函数,在函数中初始化串口,主要是配置管脚和DMA通道void HalDriverInit (void){...................................#if (defined HAL_UART) && (HAL_UART == TRUE)HalUARTInit();#endif ....................................}从程序中可以看出要想使用协议栈中串口,初始化串口必须定义HAL_UART和HAL_UART TRUE 在hal_board_cfg.h文件中。
#ifndef HAL_UART#if (defined ZAPP_P1) || (defined ZAPP_P2) || (defined ZTOOL_P1) || (defined ZTOOL_P2)#define HAL_UART TRUE#else#define HAL_UART FALSE#endif#endif然后在osal_start_system()开始系统后,会调用Hal_ProcessPoll()来读取时间和串口。
在CC2430的数据手册中有这样一段话。
从零开始学习Zstack之1Zstack情况:本人采用的是TI的Zstack1.4.3协议,据说这个需要IAR7.30B及以上版本,而目前市面上又没有破解,所以用的人很少,这也是我的机会!呵呵!(傻笑有点多,关键是WORD里没有表情符号,不能正常表达我此时的心情!)正式开始:开始之前在说一句:从TI网站上下载的Zstack的方法就不介绍了。
否则就是从-1开始了而不是从0开始了-----------------我是这么觉得的!第一步:安装Zstack从 TI官方网站上下载的Zstack为:swrc072c.zip,我想这个压缩包大家都认识。
解压之后为:ZStack- CC2430-1.4.3.exe文件。
这个安装文件大家都会了。
默认安装路径为:C:\ Texas Instruments\ZStack-1.4.3。
安装之后在C:\Texas Instruments\ZStack-1.4.3目录下有各PDF文档为:Getting Started Guide CC2430.pdf,不用多说,这个肯定是要看的。
既然把它放到这么前面,说明它是入门中的入门文档。
下面就简单介绍下这个文档:1、介绍了安装ZStack-CC2430-1.4.3.exe需要的硬件软件条件:需要电脑、操作系统为Wi ndows 2000或 Windows XP。
至于更高或更低版本的本人没有尝试。
2、讲了安装流程。
这个有点多余了,这年月哪个有电脑的没有安装上百上千次的软件啊?但是需要强调的是安装路径----默认就好!3、接下来就是让我们看的第一个文档为:Start->Programs->Texas Instruments->ZStack-1.4.3->Z-Stack User’s Guide,既然让我看我就来看看这个文档!!第二步:Z-Stack 用户指导这个文档的更新时间为:2007年12月21日----应该还是比较新的版本。