ZigBee串口介绍
来源:互联网 发布:软件销售公司经营范围 编辑:程序博客网 时间:2024/05/04 13:31
一、串口
串口数据具有以下格式:
0xFE, DataLength, CM0, CM1, Data payload, FCS
解释:0xFE:数据帧头
DataLength:Datapayload的数据长度,以字节计,低字节在前;
CM0:命令低字节;
CM1:命令高字节;(ZTOOL软件就是通过发送一系列命令给MT实现和协议栈交互);
Data payload:数据帧具体的数据,这个长度是可变的,但是要和 DataLength一致;
FCS:校验和,从 DataLength 字节开始到 Data payload 最后一个字节所有字节的异或按字节操作。
例如: FE 06 00 02 41 42 43 44 45 46 03
0xFE
DataLength
CM0
CM1
Datapayload
FCS
FE
06
00
02
41 42 43 44 45 46
03
串口发给系统应用层的结构体:
typedef stuct
{
osal_event_hdr_t hdr;
uint8 *msg;
} mtOSALSerialData_t;
其中 *msg为去掉帧头和校验符的串口数据,即:06 00 02 41 42 43 44 45 46。
如何处理串口数据:
首先打开Project->Options,在如图1所示的Options设置对话框的Defined symbols中添加ZTOOL_P1(选择使用ZTOOL,使用MT_UartProcessZtoolData函数处理串口数据);其次在SampleApp.c的SampleApp_Init()中添加:
MT_UartInit(); //添加串口初始化函数
MT_UartRegisterTaskID(SampleApp_TaskID); //注册串口任务事件
执行过程:
在系统初始化过程中调用void MT_UartInit ()(该函数位于MT_Uart.c文件中),该函数中有如下两句函数:
#if defined (ZTOOL_P1) || defined (ZTOOL_P2)
uartConfig.callBackFunc = MT_UartProcessZToolData;
函数中使用调用MT_UartProcessZToolData()(该函数位于MT_Uart.c文件中)回调函数处理串口发来的数据。该函数对串口数据进行解包,并且设置事件消息:
pMsg->hdr.event = CMD_SERIAL_MSG;
如果校验正确则将串口消息发送给应用处理层:
osal_msg_send( App_TaskID, (byte *)pMsg );
因此在应用层SampleApp_ProcessEvent()(该函数位于SampleApp.c文件中)函数中添加如下语句即可进行串口数据处理:
case CMD_SERIAL_MSG:
Uart_IncomingDataProcessing(((mtOSALSerialData_t *)MSGpkt)->msg) //串口处理函数,根据不同的命令将串口发来的消息发送出去
break;
注意:发来的串口数据包括:数据长度(DataLength),命令低字节(CM0),命令高字节(CM1),数据有效载荷(Data payload)。处理时应按照该顺序进行处理。
- ZigBee串口介绍
- ZigBee介绍
- Zigbee介绍
- zigbee串口透明传输
- ZigBee串口收发数据
- Zigbee的串口学习
- Zigbee串口通信
- ZigBee之串口(简)
- zigbee点对点串口收发
- ZigBee串口说明
- Zigbee串口透明传输(转载)
- zigbee无线串口应用记录
- ZigBee CC2530串口通信调试
- zigbee学习之串口通信
- zigbee网关 java 串口通信
- ZIGBEE 技术 介绍
- ZigBee协议介绍
- ZigBee技术介绍
- 由此开篇,记录开发之路的点点滴滴。跟大家一起分享,以及以后我能用的着。
- 华为机试题目---字符串替换
- S3C2440如何从NAND FLASH中启动
- DB2错误信息汇
- 软件公司中的“黑社会"
- ZigBee串口介绍
- ================各种文字==========
- Codeforces_431C_k-Tree(背包)
- 一款相当好用的VPN软件
- tcpdump的详细使用
- YPbPr 和 YCbCr区别
- leetcode: Best Time to Buy and Sell Stock III
- Android 数字签名
- 一些关于分布式的启发