版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目十九
Z-Stack协议栈串口收发信息01项目导入项目导入
物联网设备最主要的功能是信息采集和信息传输。通常传感器通过UART、IIC、SPI接口把采集到的数据发送给CC2530,CC2530再通过无线通信方式发送到协调器或其他物联网设备。前一个项目介绍了使用Z-Stack协议栈通过串口发送数据,而如果我们从外部通过串口发送控制信号到CC2530,用来控制CC2530所接电气设备,CC2530要如何接收这些数据呢?本项目通过1个CC2530模块的串口接收数据过程,让大家能够了解CC2530模块使用Z-Stack协议栈进行串口收发通信的整个过程。02项目分析项目分析
本项目需要使用1个CC2530模块。首先需要完成Z-Stack协议栈UART串口接收函数的代码编写及设置,完成后就可以通过UART接口接收数据,在PC端通过串口调试助手等工具软件查看接收到的数据。【项目要求】1.Z-Stack协议栈UART接收函数代码编写。2.Z-Stack协议栈下使用CC2530的UART0接收数据。3.PC端使用串口调试助手查看接收到的数据。03知识储备Z-Stack协议栈串口接收数据
Z-Stack协议栈在MT_UART.c文件的串口初始化函数MT_UartInit()中,除了定义串行通信的波特率、起始位、数据位、奇偶校验位、停止位、硬件流控制,还定义了串口回调函数(接收数据的处理函数)。系统默认没有定义ZTOOL_P1等参数。#ifdefined(ZTOOL_P1)||defined(ZTOOL_P2)
//如果定义了ZTOOL_P1或TOOL_P2
uartConfig.callBackFunc=MT_UartProcessZToolData;//则此函数为回调函数#elifdefined(ZAPP_P1)||defined(ZAPP_P2)
//如果定义了ZAPP_P1或ZAPP_P2
uartConfig.callBackFunc=MT_UartProcessZAppData;
//则此函数为回调函数#else
uartConfig.callBackFunc=NULL;
//没定义,无回调函数#endif
HalUARTOpen(MT_UART_DEFAULT_PORT,&uartConfig);
//启用串口UART0Z-Stack协议栈串口接收数据Z-Stack协议栈回调函数MT_UartProcessZToolData()
Z-Stack协议栈在MT_UART.c文件中定义了回调函数MT_UartProcessZToolData(),其接收数据格式为0xFE+数据长度(data的长度)+命令字段+data[]+校验和。......
while(Hal_UART_RxBufLen(port))//判断是否有数据{HalUARTRead(port,&ch,1);//每次接收一个数据switch(state){caseSOP_STATE://初始状态state=0,判断帧头是否为SOP_STATE(0xFE)
if(ch==MT_UART_SOF)state=LEN_STATE;
//若帧头正确,状态改为LEN_STATE
break;caseLEN_STATE://接收第二字节时,进入LEN_STATE
LEN_Token=ch;//将第二字节(传输数据data[]的长度)赋值给LEN_Token
.......
自定义回调函数
由于MT_UartProcessZToolData()函数相对比较复杂,一般常采用自定义回调函数的方式。Z-Stack协议栈中默认没有定义ZTOOL_P1等参数,因此默认情况下串口接收时并不调用MT_UartProcessZToolData()函数。
项目需要修改串口初始化函数MT_UartInit()中的波特率和硬件流控参数,同时将串口回调函数修改为自行编写的rxCB()函数。halUARTCfg_tuartConfig;uartConfig.configured=TRUE;uartConfig.baudRate=HAL_UART_BR_115200;//波特率115200uartConfig.flowControl=FALSE;//禁用硬件流控uartConfig.callBackFunc=rxCB;//自定义回调函数自定义回调函数voidrxCB(uint8port,uint8event){unsignedcharUartbuf[20];unsignedcharbuflen;buflen=HalUARTRead(0,Uartbuf,20);
//将串口缓存数据写入数组Uartbuf,返回数据长度if(buflen){//如果收到"AB#",双灯闪烁。HAL_LED_1、HAL_LED_2系统默认设置为P1_0、P1_1if(Uartbuf[0]=='A'&&Uartbuf[1]=='B'&&Uartbuf[2]=='#')HalLedBlink(HAL_LED_1,4,50,500);//LED1闪烁4次if(Uartbuf[0]=='Y'&&Uartbuf[1]=='1'&&Uartbuf[2]=='#')HalLedSet(HAL_LED_1,HAL_LED_MODE_ON);//如果收到"Y1#",LED1灯亮。
if(Uartbuf[0]=='Y'&&Uartbuf[1]=='0'&&Uartbuf[2]=='#')
HalLedSet(HAL_LED_1,HAL_LED_MODE_OFF);
//如果收到"Y0#",LED1灯灭。
......
04项目实施项目实施项目实施前必须先准备好相应的设备和资源。用IAR打开项目文档。修改项目参数:禁止使用硬件流控默认波特率改为115200自定义回调函数下载程序到CC2530模块
将CC2530模块的用USB转TTL数据线连接到PC机;打开串口调试助手,修改波特率为115200;按仿真器或者CC2530模块上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届广东省茂名省际名校高考英语一模试卷含解析
- 河北省三河市第三中学2025届高三第四次模拟考试数学试卷含解析
- 安徽省阜阳市成效中学2025届高三压轴卷英语试卷含解析
- 甘肃省定西市通渭县第二中学2025届高三考前热身语文试卷含解析
- 2025届全国大联考高三第一次调研测试英语试卷含解析
- 《solidworks 机械设计实例教程》 课件 任务9.2 发动机装配体的设计
- 山东省栖霞市2025届高三下学期联合考试语文试题含解析
- 重庆第十一中学2025届高考语文五模试卷含解析
- 2025届青海省大通回族土族自治县第一中学高考临考冲刺英语试卷含解析
- 2025届山东省夏津县第一中学高考数学四模试卷含解析
- 煤矿电气试验规程
- 屋顶分布式光伏项目施工安全管理方案
- 新人教版高中物理课本必修1复习与提高AB组解析
- 关于转发中国中铁股份有限公司管理人员政纪处分规定试行的通知
- 标准节流装置计算
- 企业行为模拟试验报告2016
- 清朝年号干支纪年对照表
- 菜么么收银系统使用说明PPT课件
- 钢轨超声波探伤知识讲解
- 水池满水试验记录表(自动计算)
- 实体书店存在问题和对策
评论
0/150
提交评论