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

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

题目

T2

分析

  • 人体传感器的输入引脚为P0_1,初始化为输入

代码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 */
    }
}
posted @ 2022-10-18 08:34  ~内个臣呐~  阅读(231)  评论(0)    收藏  举报