物联网开发CC2530点对点人体传感器
题目

分析
代码A
#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 RF_CHANNEL 25 // 频道 11~26
#define PAN_ID 0x3520 //网络id
#define MY_ADDR 0xA //本机模块地址
#define SEND_ADDR 0xB //发送地址
/**************************************************/
static basicRfCfg_t basicRfConfig;
// 无线RF初始化
void ConfigRf_Init(void)
{
basicRfConfig.panId = PAN_ID;
basicRfConfig.channel = RF_CHANNEL;
basicRfConfig.myAddr = MY_ADDR;
basicRfConfig.ackRequest = TRUE;
while(basicRfInit(&basicRfConfig) == FAILED);
basicRfReceiveOn();
}
void init(){//初始化
P1SEL &=~0x1F;
P1DIR |= 0x1B;
P0SEL &=~0x01<<1;
P0DIR |= 0x01<<1;
P1_0 = 1;
P1_1 = 0;
}
/********************MAIN************************/
void main(void)
{
halBoardInit();//选手不得在此函数内添加代码
ConfigRf_Init();//选手不得在此函数内添加代码
init();
unsigned int t = 0;
while(1)
{
/* user code start */
halMcuWaitMs(1);
t++;if(t == 1000){//1000ms发送一次
t = 0;
if(P0_1){//是否收到人体信号
P1_1 = 1;
basicRfSendPacket(SEND_ADDR,"1有人",5);//发送信号
}else{
basicRfSendPacket(SEND_ADDR,"0无人",5);
P1_1 = 0;
}
}
/* user code end */
}
}
代码B
#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 RF_CHANNEL 25 // 频道 11~26
#define PAN_ID 0x3520 //网络id
#define MY_ADDR 0xB //本机模块地址
#define SEND_ADDR 0xA //发送地址
/**************************************************/
static basicRfCfg_t basicRfConfig;
// 无线RF初始化
void ConfigRf_Init(void)
{
basicRfConfig.panId = PAN_ID;
basicRfConfig.channel = RF_CHANNEL;
basicRfConfig.myAddr = MY_ADDR;
basicRfConfig.ackRequest = TRUE;
while(basicRfInit(&basicRfConfig) == FAILED);
basicRfReceiveOn();
}
void init(){//初始化引脚
P1SEL &=~0x1F;
P1DIR |= 0x1B;
P1_0 = 1;
P1_1 = 0;
}
/********************MAIN************************/
void main(void)
{
halBoardInit();//选手不得在此函数内添加代码
ConfigRf_Init();//选手不得在此函数内添加代码
init();
unsigned char arr[10];
while(1)
{
/* user code start */
if(basicRfPacketIsReady()){//开始接收无线数据
basicRfReceive(arr,5,NULL);//接收无线数据
if(arr[0] == '1')P1_1 = 1;else P1_1 = 0;//设置亮灯
halUartWrite(arr,10);//串口输出
}
/* user code end */
}
}