ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CC2530开发试题(三)

2021-11-10 11:33:09  阅读:206  来源: 互联网

标签:key P1 hal 试题 void 开发 basicRfConfig CC2530 include


试题

代码部分

ZigbeeA - rf_set.c

#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 "sensor_drv/sensor.h"
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
/*****点对点通讯地址设置******/
#define RF_CHANNEL                25         // 频道 11~26
#define PAN_ID                    0x1234     //网络id 
#define MY_ADDR                   0x1111     //本机模块地址
#define SEND_ADDR                 0x2222     //发送地址
/**************************************************/
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();
}
/********************MAIN************************/
void main(void)
{
    halBoardInit();//选手不得在此函数内添加代码
    ConfigRf_Init();//选手不得在此函数内添加代码
    
    uint8 ledArray[4] = {0x06, 0x05, 0x14, 0xC};
    uint8 ledCurrCount, cycleCount;
    uint8 key_send;
    
    P1SEL &= ~0xFF;
    P1DIR &= ~0xFF;
    P1DIR |= 0x1F;
    P1 = 0x04;
    
    while(1)
    {
    /* user code start */
        if(P1_2 == 0)
        {
            halMcuWaitMs(10);
            if(P1_2 == 0)
            {
                key_send = 0x01;
                basicRfSendPacket(SEND_ADDR, &key_send, 1);
                
                while(cycleCount < 3)
                {
                    P1 = ledArray[ledCurrCount];
                    halMcuWaitMs(2000);
                    
                    if(ledCurrCount == 3) ++cycleCount;
                    
                    if(ledCurrCount < 3) ++ledCurrCount;
                    else ledCurrCount = 0;
                    
                    if(cycleCount == 3)
                    {
                        key_send = 0x00;
                        basicRfSendPacket(SEND_ADDR, &key_send, 1);
                    }
                }
                
                while(P1_2 == 0);
                
                //松手后
                ledCurrCount = 0;
                cycleCount = 0;
                P1 = 0x04;
            }
        }
    /* user code end */
    }
}

ZigbeeB - rf_set.c

#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 "sensor_drv/sensor.h"
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
/*****点对点通讯地址设置******/
#define RF_CHANNEL                25         // 频道 11~26
#define PAN_ID                    0x1234     //网络id 
#define MY_ADDR                   0x2222     //本机模块地址
#define SEND_ADDR                 0x1111     //发送地址
/**************************************************/
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();
}
/********************MAIN************************/
void main(void)
{
    halBoardInit();//选手不得在此函数内添加代码
    ConfigRf_Init();//选手不得在此函数内添加代码
    
    uint8 key_recv;
    
    P1SEL &= ~0xFF;
    P1DIR &= ~0xFF;
    P1DIR |= 0x81;
    P1 = 0x00;
    
    while(1)
    {
    /* user code start */
        if(basicRfPacketIsReady())
        {
            basicRfReceive(&key_recv, 1, NULL);
            if(key_recv == 0x01)
            {
                //打开ledlight
                P1_0 = 1;
                P1_7 = 1;
            }
            else if(key_recv == 0x00)
            {
                //关闭ledlight
                halMcuWaitMs(3000);
                P1_0 = 0;
                P1_7 = 0;
            }
        }
    /* user code end */
    }
}

演示

点击打开

标签:key,P1,hal,试题,void,开发,basicRfConfig,CC2530,include
来源: https://www.cnblogs.com/godshadow/p/15532645.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有