IAR使用单片机CC2530开发板加点对点通信传输光敏电阻值代码? 程序代码出现错误求教大佬

#include <iocc2530.h>
#include "hal_mcu.h"
#include "hal_assert.h"
#include "hal_board.h"

#include "hal_rf.h"
#include "basic_rf.h"
#include <stdio.h>
#include"sys_init.h"
#include "uart.h"

#define D1 P1_0

#define RF_CHANNEL            25      // 2.4 GHz RF channel


#define PAN_ID                0x2007
#define SEND_ADDR             0x2530
#define RECV_ADDR             0x2520

#define NODE_TYPE  0         //0:接收节点,1:发送节点

static basicRfCfg_t basicRfConfig;
void Photoresistance_Test(void);
int getADC(void);

/* 射频模块发送数据函数 */
void rfSendData(void)
{
  uint8 pTxData[] = {'H', 'e', 'l', 'l', 'o', ' ', 'c', 'c', '2', '5', '3', '0', '\r', '\n'};   //定义要发送的数据
 
    uint8 ret;
    
    printf("send node start up...\r\n");
    // Keep Receiver off when not needed to save power
    basicRfReceiveOff();  //关闭射频接收器
    
    // Main loop
    while (TRUE) {
       
       ret = basicRfSendPacket(RECV_ADDR, pTxData, sizeof pTxData);     //点对点发送数据包     
       if (ret == SUCCESS) {
          hal_led_on(1);
          halMcuWaitMs(100);
          hal_led_off(1);
          halMcuWaitMs(900); 
       } else {
          hal_led_on(1);
          halMcuWaitMs(1000);
          hal_led_off(1);
       }
       
    }
}

/* 射频模块接收数据函数 */
void rfRecvData(void)
{
    uint8 pRxData[128];
    int rlen;
    
  
    printf("recv node start up...\r\n");
  
    basicRfReceiveOn();       //开启射频接收器

    // Main loop
    while (TRUE) {
        while(!basicRfPacketIsReady());
        rlen = basicRfReceive(pRxData, sizeof pRxData, NULL);
        if(rlen > 0) {
          pRxData[rlen] = 0;
            
          printf((char *)pRxData);
            
        }
    }
}

void Photoresistance_Test(void)
{
char StrAdc[10];
int RValue;
RValue=getADC();
sprintf(StrAdc,"%d\r",RValue);
Uart_Send_String(StrAdc);
Uart_Send_String("Ω\r\n");
halWait(250);
D7=!D7;
halWait(250);
halWait(250);
}


int getADC(void)
{
unsigned int Rvalue;
float value;
float VOL,VOL2;
P0SEL |=0x02;
APCFG |=0x02;
ADCCON3=0xB1;
while(!(ADCCON1&0x80));
uint temp=(uint)(ADCH<<8);
temp |=(uint)ADCL;
temp >>= 3;
temp=temp &~(1<<12);
ADCCON1&=~0x80;
VOL=(temp*3.3)/4096;
VOL2=3.3-VOL;
value=10000*VOL/VOL2;
return(Rvalue);
}


void main(void)
{
  
    halMcuInit();     //初始化mcu
    hal_led_init();   //初始化LED
    
    //();  //初始化串口
    
    if (FAILED == halRfInit()) 
    {                             // halRfInit()为射频初始化函数
        HAL_ASSERT(FALSE);
    }
     xtal_init();
led_init();
uart0_init(0x00,0x00);
while(1)
{
Photoresistance_Test();
}
    // Config basicRF
    basicRfConfig.panId = PAN_ID;          //panId
    basicRfConfig.channel = RF_CHANNEL;    //通信信道
    basicRfConfig.ackRequest = TRUE;       //应答请求
    
    
#ifdef SECURITY_CCM
    basicRfConfig.securityKey = key;       //安全秘钥
#endif

    
    // Initialize BasicRF
#if NODE_TYPE
    basicRfConfig.myAddr = SEND_ADDR;     //发送地址
#else
    basicRfConfig.myAddr = RECV_ADDR;     //接收地址
#endif
    
    if(basicRfInit(&basicRfConfig)==FAILED) 
    {
      HAL_ASSERT(FALSE);
    }
#if NODE_TYPE
  rfSendData();       //发送数据
#else
  rfRecvData();       //接收数据
#endif
  
  while(1)
  {
  
      pTxData = getADC();               

     basicRfSendPacket(RECV_ADDR, pTxData, sizeof pTxData);
  } 
}
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值