串口通讯实验-物联网
简介:通过实验了解cc2500串口通讯、Iar在线调试串口通信 实现和pc端通信
Cc2500是2.4ghz的高性能发射器 用于低功耗的rf上,主要针对:工业、作用:主要有处理数据 数据缓冲 突发传输 接受信号强度知识等
Zigbee是一款新型的无线通信技术 适用于传输范围短数据传输速率较低的电子元器件间,ZigBee无线通信技术可于数以千计的微小传感器相互间,依托专门的无线电标准达成相互协调通信,因而该项技术常被称为Home RF Lite无线技术、FireFly无线技术
1. 实验目的
学习CC2530 串口通讯原理
使用IAR在线调试串口通信,实现PC机与开发板的通信。
2. 实验环境
硬件:ZigBee(CC2530)模块,UART下载调试板,CCDebugger仿真器,PC机
软件:IAR Embedded Workbench for 8051
实验目录:Src\ZigBee\Components\CC2530无线传感网实验\实验06 串口通讯实验
3. 实验原理
在无线传感网络中,CC2530开发板需要将采集到的数据发送给上位机(即PC)处理,同时上位机需要向CC2530 发送控制信息,这一切都离不开两者之间的信息传递。串口就是开发板和用户电脑交互的一种工具,串口通讯是指外设与计算机之间,通过数据信号线、控制线等 ,按位进行传输命令和数据的一种通讯方式,正确地使用串口对于ZigBee 无线开发具有较大的促进作用 。
4. 实验步骤
- 将CC Debugger仿真器一端连在PC机上,一端连在UART调试板仿真器下载口上。
- 用IAR for 8051打开实验工程,目录在:Src\ZigBee\Components\CC2530基础实验\实验06 串口通讯实验,之后打开后缀名为(.eww)的工程文件。
- 编译程序,菜单栏Project->Rebuild All。
- 编译通过之后下载程序到ZigBee模块,点击按钮如图:
- 使用光盘提供的串口终端软件AccessPort,设置为串口波特率57600、8位、无奇偶奇校验、无硬件流模式。
5. 实验结果
当向串口终端输入数据输入回车结束符时,将在超级终端看到串口输入的数据。如下图:
代码:
u8 USART_RX_BUF[10];//定义接收数组,看传感器返回的有多少字节数据
u8 USART_RX_STA=0;//数组标志位,如第0位、第一位
static char start=0; //开始接收数据标志位
void USART2_IRQHandler(void)
{
u8 Res=0;//定义一个数来接收每次读取的数据
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断,每一个字节都会中断一次
{
Res =USART_ReceiveData(USART2); //读取接收到的字节数据
//接收数据时不要随便加入占用时间的命令,如串口打印,会影响下面数据字节的接收
if(Res == 0xFF) //如果接收的第一位数据是0XFF(这个是查看传感器的手册得知的,这里相当于进行校验)
{
start=1; //开始接收数据标志位,一旦第一个接收正确,就就继续向下接收
}
if(start== 1)
{
USART_RX_BUF[USART_RX_STA] = Res ; //把接收到的数据存到数组里面
USART_RX_STA++;//数组标志位加1
if(USART_RX_STA >= 10 && (USART_RX_BUF[1]==0X01))//这里还校验了接收的第二个数据
{
printf("PM2.5:%d\n",USART_RX_BUF[3]);//通过 串口1打印接收数组里的数据
USART_SendData(USART3,USART_RX_BUF[3]); //将数据通过串口3发出 uart3_send_buff(USART_RX_BUF,10);
USART_RX_STA=0;//重新开始接收
USART_RX_BUF[0] = 0;
start=0;
}
}
}
}
作者:泽宇-Li
- 点赞
- 收藏
- 关注作者
评论(0)