标签: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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。