您的位置:首页 > 其它

CC2530基础实验之传感器采集数据发送至上位机

2017-03-25 18:41 537 查看
#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>

uint16 count = 0;   //设置定时器溢出次数
uint16 value = 0;

#define MAX_SEND_BUF_LEN  128
#define MAX_RECV_BUF_LEN  128
static uint8 pTxData[MAX_SEND_BUF_LEN]; //定义无线发送缓冲区的大小
static uint8 pRxData[MAX_RECV_BUF_LEN]; //定义无线接收缓冲区的大小

#define MAX_UART_SEND_BUF_LEN  128
#define MAX_UART_RECV_BUF_LEN  128
uint8 uTxData[MAX_UART_SEND_BUF_LEN]; //定义串口发送缓冲区的大小
uint8 uRxData[MAX_UART_RECV_BUF_LEN]; //定义串口接收缓冲区的大小
uint16 uTxlen = 0;
uint16 uRxlen = 0;

/*****点对点通讯地址设置******/
#define RF_CHANNEL                20         // 频道 11~26
#define PAN_ID                    0x1A5B     //网络id
#define MY_ADDR                   0x2017     // 本机模块地址
#define SEND_ADDR                 0x2016     //发送地址
/**************************************************/
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
}

void init_T1()
{
CLKCONCMD &=~0X40;
while(CLKCONSTA &=0X40);
CLKCONCMD &=0X47;
T1CTL|=0X05;
IEN1 |=0X02;
EA=1;
}

#pragma vector=T1_VECTOR
__interrupt void T1_ISR()
{
count++;
if(count==60)
{
value=get_adc();
uint8 output[3];

output[0] = value/100;   //光照的个位电压值
output[1] = value/10%10;
output[2] = value%10;

count=0;
halUartWrite(output,3);

}
T1IF=0;
}

void main(void)
{

halBoardInit();  //模块相关资源的初始化
ConfigRf_Init(); //无线收发参数的配置初始化
init_T1();

while(1)
{

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: