当前位置:首页 > 技术学院 > 技术前线
[导读]我想实现两个节点之间通信,不用Z-STACK,就用最简单的操作寄存器,实现节点1发送信息给节点2,节点2收到以后亮灯,节点1的代码如下:

#include "ioCC2530.h"

#define led1 P1_0

#define led2 P2_0

static unsigned char buf[128];

static unsigned char len=8;

void init_usart()

{

PERCFG = 0x00;

P0SEL = 0x3c; // 0011 1100

U0CSR |= 0x80;

U0GCR |= 11;

U0BAUD = 216; // set baudrate 115200

UTX0IF = 1;

U0CSR |= 0x40;

}

void rf_init()

{

FRMCTRL0 |= (0x20 | 0x40); /* AUTO_ACK | AUTO_CRC */

TXFILTCFG = 0x09;

AGCCTRL1 = 0x15;

FSCAL1 = 0x00;

/* enable RXPKTDONE interrupt */

RFIRQM0 |= (1<<6);

/* enable general RF interrupts */

IEN2 |= (1<<0);

FREQCTRL = 0x0b; /* channel 11 */

SHORT_ADDR0 = 0x05;

SHORT_ADDR1 = 0x00;

PAN_ID0 = 0x22; /* MUST set, or even can't receive broadcast message */

PAN_ID1 = 0x00;

RFST = 0xed; /* ISFLUSHRX */

RFST = 0xe3; /* ISRXON */

}

#pragma vector=RF_VECTOR

__interrupt void rf_isr(void)

{

unsigned char e, i;

led1 ^=1;

led2 ^=1;

e = EA;

EA = 0; /* disable global interrupt */

if (RFIRQF0 & (1<<6)) {

len = RFD;

len &= 0x7f;

for (i = 0; i < len; i++) {

buf[i] = RFD;

};

S1CON = 0; /* clear general RF interrupt flag */

RFIRQF0 &= ~(1<<6); /* clear RXPKTDONE interrupt */

}

EA = e; /* restore global interrupt state */

}

void tx()

{

unsigned char i;

RFST = 0xe3; /* ISRXON */

/* wait for SFD not active and TX_Active not active */

while (FSMSTAT1 & ((1<<1) | (1<<5))); /* TX_ACTIVE | SFD */

RFIRQM0 &= ~(1<<6); /* disable RXPKTDONE interrupt */

IEN2 &= ~(1<<0); /* disable general RF interrupts */

RFST = 0xee; /* ISFLUSHTX */

RFIRQF1 = ~(1<<1); /* clear TXDONE interrupt */

RFD = len; /* the first byte to TX is the length of the frame */

for (i = 0; i < len; i++) {

RFD = buf[i];

}

/* trun on RX interrupt */

RFIRQM0 |= (1<<6);

IEN2 |= (1<<0);

RFST = 0xe9; /* ISTXON */

while (!(RFIRQF1 & (1<<1))); /* waiting for transmission to finish */

RFIRQF1 = ~(1<<1); /* clear TXDONE interrupt */

}

void main(void)

{

P1SEL &= ~(1<<0); //P1为普通 I/O 口

P2SEL &= ~(1<<0);

P1DIR |= 0x01; //P1.0 输出

P2DIR |= 0x01;

led1=0;

led2=0;

EA = 0;

/* set main clock source to 32MHz */

SLEEPCMD &= ~0x04;

while(!(SLEEPSTA & 0x40));

CLKCONCMD &= ~0x47;

SLEEPCMD |= 0x04;

//init_usart();

rf_init();

EA = 1; /* enable global interrupt */

while(1) {

if (len > 0) {

led1=1;

led2=1;

tx();

}

}

}

节点2的代码与节点1差不多,只是在接收中断处理程序里加了亮灯的代码。

烧写节点以后,发现节点1能发送,但是节点2一点反应都没有。。这是为什么呢?在烧写的时候要设置IEEE地址吗?本人是初学CC2530,请各位指教!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

4月25日,IME2024巡展第二站——第二届(南京)微波毫米波及天线技术发展再度聚势来袭!继首站成都站后,纳特通信再次受邀参展,并携带系统级、设备级电磁环境效应测试系统等众多明星产品亮相135展位。

关键字: 射频 纳特通信

2024年4月7日,高性能舌簧继电器的领先制造商Pickering Electronics将于4月9日至10日参加在北京国家会议中心举行的EDI CON(电子设计创新大会),并展示用于射频和高速数字开关的同轴舌簧继电器,...

关键字: 继电器 数字开关 射频

为了追求更高的数据传输速率和更低的延迟,Wi-Fi7直接将“技能树”点满,新增了很多新的特性。虽然这种46Gbps最大数据速率在用户侧的实现可能尚需时日,但设备厂商已经纷纷摩拳擦掌,开始了Wi-Fi7设备的开发和出货。

关键字: Wi-Fi7 射频 是德科技 E7515W 无线连接 Keysight

器件符合IrDA®标准,采用内部开发的新型IC和表面发射器芯片技术,可以即插即用的方式替换现有解决方案。

关键字: 射频 收发器

是德科技(Keysight Technologies, Inc.)与香港中文大学(深圳)合作开展了一门针对射频微波教学的课程,旨在提高学习成效,加深理论与实践的结合,强化教学过程中的动手实践过程。利用课件、教学实验板和实...

关键字: 射频 链路特性 微波

2024年2月26日,国际通信行业盛会MWC 24于西班牙巴塞罗那召开,全球通信及其相关供应链的顶尖企业荟聚一堂,展示移动通信领域的前沿研究成果,与国际行业同仁展开深入技术交流。三安集成作为射频前端整合解决方案服务提供商...

关键字: 三安集成 射频 通信

业内消息,近日新加坡 RF GaN(射频氮化镓)芯片供应商 Gallium Semiconductor(加联赛半导体)突然终止业务并解雇所有员工,包括位于荷兰奈梅亨的研发中心。

关键字: 芯片 射频 氮化镓 Gallium RF GaN

是德科技(Keysight Technologies, Inc.)近日宣布,RFPro 电磁(EM)仿真软件作为是德科技 EDA 先进设计系统(ADS)综合工具套件中的一员,现已通过 Intel Foundry 认证,可...

关键字: EDA 射频 微波电路

近日,Qorvo宣布已就收购Anokiwave达成最终协议。Anokiwave是一家高性能硅基集成电路的卓越供应商,其产品用于航天、卫星通信及5G应用的智能有源阵列天线。交易预计将于2024年第一季度完成。

关键字: 5G 射频

RedCap (Reduce Capbility) 是3GPP Rel17专门为物联网设备定义的新特性。其宗旨是为了进一步降低终端成本和复杂度,为广泛的物联网应用提供更多的选择。工信部在2023年10月发布《关于推进5G...

关键字: 物联网 射频 Wi-Fi 7
关闭
关闭