- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
项目十九
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_P2uartConfig.callBackFunc=MT_UartProcessZToolData;//则此函数为回调函数
#elifdefined(ZAPP_P1)||defined(ZAPP_P2)//如果定义了ZAPP_P1或ZAPP_P2uartConfig.callBackFunc=MT_UartProcessZAppData;//则此函数为回调函数
#else
uartConfig.callBackFunc=NULL;//没定义,无回调函数
#endif
HalUARTOpen(MT_UART_DEFAULT_PORT,uartConfig);//启用串口UART0
Z-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_STATEbreak;caseLEN_STATE://接收第二字节时,进入LEN_STATELEN_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;//波特率115200
uartConfig.flowControl=FALS
您可能关注的文档
- 无线传感网技术及应用 课件 项目01 认识ZigBee无线传感网技术.pptx
- 无线传感网技术及应用 课件 项目02 认识IAR集成开发环境.pptx
- 无线传感网技术及应用 课件 项目03 制作LED流水灯.pptx
- 无线传感网技术及应用 课件 项目04 按键控制LED.pptx
- 无线传感网技术及应用 课件 项目05 按键触发中断.pptx
- 无线传感网技术及应用 课件 项目06 定时器1控制LED闪烁.pptx
- 无线传感网技术及应用 课件 项目07 串口发送数据.pptx
- 无线传感网技术及应用 课件 项目08 串口接收数据控制LED.pptx
- 无线传感网技术及应用 课件 项目09 CC2530的睡眠定时器.pptx
- 无线传感网技术及应用 课件 项目10 看门狗的应用.pptx
文档评论(0)