CC2530basic_Rf串口无线收发
1初始化板
2定义无线并初始化
3接收数据发送数据
#include "hal_defs.h"
#include "hal_cc8051.h"
#include "hal_int.h"
#include "hal_mcu.h"
#include "hal_board.h"
#include "hal_led.h"
#include "hal_rf.h"
#include "basic_rf.h"
#include "hal_uart.h"
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#define MAX_RECV_BUF_LEN 128 //定义无线缓冲区的大小
static uint8 pRxData[MAX_RECV_BUF_LEN]; //定义无线缓冲区的大小
#define MAX_UART_RECV_BUF_LEN 128
uint8 uRxData[MAX_UART_RECV_BUF_LEN]; //定义串口缓冲区的大小
/*****点对点通讯地址设置******/
#define RF_CHANNEL 20 // 频道 11~26
#define PAN_ID 0x1379 //网络id
#define MY_ADDR 0x1234 // 本机模块地址 1号模块
#define SEND_ADDR 0x5678 //发送地址 1号模块
//#define MY_ADDR 0x5678 // 本机模块地址 2号模块
//#define SEND_ADDR 0x1234 //发送地址 2号模块
static basicRfCfg_t basicRfConfig;//无线初始化的枚举
/**************************************************/
// 无线RF初始化
void ConfigRf_Init(void)
{
basicRfConfig.panId = PAN_ID; //zigbee的ID号设置
basicRfConfig.channel = RF_CHANNEL; //zigbee的频道设置
basicRfConfig.myAddr = MY_ADDR; //设置本机地址
basicRfConfig.ackRequest = TRUE; //应答信号
while(basicRfInit(&basicRfConfig) == FAILED); //检测zigbee的参数是否配置成功
basicRfReceiveOn(); // 打开RF
}
/********************MAIN************************/
void main(void)
{
uint8 len = 0;
halBoardInit(); //模块相关资源的初始化
ConfigRf_Init(); //无线收发参数的配置初始化
halLedSet(3);
halLedSet(4);
while(1)
{
len = halUartRxLen(); // 接收串口数据 的长度
if(len > 0)
{
halLedToggle(3); // 绿灯取反,无线发送指示
halUartRead(uRxData,sizeof(uRxData));//收串口数据
halMcuWaitMs(30);
basicRfSendPacket(SEND_ADDR,uRxData,len);//发rf
halMcuWaitMs(30);
}
if(basicRfPacketIsReady()) //查询有没收到无线信号
{
halLedToggle(4); // 红灯取反,无线接收指示
//接收无线数据
len = basicRfReceive(pRxData, MAX_RECV_BUF_LEN, NULL);
//接收到的无线发送到串口数
halUartWrite(pRxData,len);
}
}
}
/************************main end *********************************************/