「ZigBee模块」组网实验-信号传输质量检测

本文介绍了使用两个ZigBee模块进行通信的组网实验,重点在于信号传输质量的检测,包括误包率、RSSI值和接收到的数据包数量。实验中,一个模块作为发射端,另一个作为接收端,接收模块通过串口在PC上显示相关信息。在per_test.c文件中添加了串口发送函数,并详细解析了代码实现,包括数据包结构、初始化过程以及发送和接收数据的逻辑。
摘要由CSDN通过智能技术生成

信号传输质量检测

重点在代码分析部分...就是废话比较多... 

 

一、实验平台

两个ZigBee模块

一个方口USB线

一个编译器

 

二、实验现象

两块ZigBee模块通信,一个模块作发射,另外一个模块作接收,接收模块通过串口在PC机上显示当前的误包率、RSSI值和接收到数据包的个数

 

 

三、准备工作

由于硬件平台不同,所以我们需要在per_test中加入串口发送函数

 

1. 打开工程—>application>per_test.c

  在per_test.c文件中添加串口发送函数

2. INCLUDES中添

 #include "string.h"

3. 在函数声明中添加

 

void uartInit(void);//**************************
void uartSend(int8 *Data,int len);//**********************

 

4. 添加串口初始化函数

 

 1 /****************************************************************
 2 串口初始化函数
 3 ****************************************************************/
 4 void initUART(void)
 5 { 
 6     PERCFG = 0x00;              //位置1 P0口
 7     P0SEL = 0x0c;              //P0_2,P0_3用作串口(外部设备功能)
 8     P2DIR &= ~0XC0;          //P0优先作为UART0
 9 
10     U0CSR |= 0x80;              //设置为UART方式
11     U0GCR |= 11;                       
12     U0BAUD |= 216;              //波特率设为115200
13     UTX0IF = 0;               //UART0 TX中断标志初始置位0
14 }

 

5. 添加串口发送函数

 

 1 /****************************************************************
 2 串口发送字符串函数            
 3 ****************************************************************/
 4 void uartSend(int8 *Data,int len)
 5 {
 6   int j;
 7   for(j=0;j<len;j++)
 8   {
 9     U0DBUF = *Data++;
10     while(UTX0IF == 0);
11     UTX0IF = 0;
12   }
13 }

 

6. 因为只有接收模块使用到串口,把串口初始化放入appReceiver()即可

 

四、分析per_test.c的代码

看代码前还是想先解释一下,这里一个数据包就是一个结构体数据类型,里面包括6个字节的内容和1个字节的序号 我们是利用序号来判断有没有发生误包的。

 

第一步,先找到main函数

 

 1 void main (void)
 2 {
 3     //变量声明
 4     uint8 appMode;         //用来选择模式(发送或接收)
 5     
 6     appState = IDLE;
 7     
 8     //配置basic RF
 9     basicRfConfig.panId = PAN_ID;
10     basicRfConfig.ackRequest = FALSE;
11 
12     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值