原创 2013.6.9学习radio接收配置

2013-6-9 17:14 1465 11 12 分类: MCU/ 嵌入式

 

2013.6.9学习radio接收配置
接收所有在信道上的数据(可以用来做监视器?)
ST_RadioEnableAddressFiltering(FALSE);//关闭地址过滤
ST_RadioEnableAutoAck(FALSE);         //关闭自动确认机制             
根据自己的需要可以设置这两项
如果设置了地址过滤,则需要设置PAN ID和节点ID
  uint16_t panid = USER_PAN_ID;
  /* 设置PAN ID */
  ST_RadioSetPanId(panid);
  
  uint16_t nodeid = USER_NODE_ID;
  /*设置节点短地址*/
  ST_RadioSetNodeId(nodeid);
  
transmit.c文件中的boolean ST_RadioDataPendingShortIdIsrCallback(uint16_t shortId)和boolean ST_RadioDataPendingLongIdIsrCallback(uint8_t* longId)用于检测该长短地址是否还有未完的数据需要等待发送的,不过在transmit.c对长地址检测的函数描述This application does not use long IDs with indirect transmissions.好像是说这个函数不能直接使用长地址返回数据,其返回值也是FALSE。
现在看回来transmit.c是ST为例程所写的,相当于main函数的另一部分,不是标准库里面的函数,可以按照自己的需求,对其改写
transmit.c只是发送函数的配置,没有配置任何接收函数,所以在main.c中加入了接收函数的配置
void ST_RadioReceiveIsrCallback(uint8_t *packet,boolean ackFramePendingSet,uint32_t time,uint16_t errors,int8_t rssi)
{
  /* 在终端中运行*/
  uint8_t i;
 /* 复制buffer */
  if(packetReceived == FALSE) 
  {
    for(i=0; i<=packet[0]; i++) 
    {
      rxPacket = packet;
    }
   packetReceived = TRUE;
  }
}
不过现在还不清楚中断中需要如何配置,好像都书本和pdf都没有说到中断的处理,再留意一下
在main函数中循环检测是否有接收到数据,接收到就打印出来
    if(packetReceived == TRUE)
    {
      for(i=0; i<=rxPacket[0]; i++) {printf(rxPacket);}
    /* 处理完毕,释放标志*/
    packetReceived = FALSE;
    }
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

345002072_353389109 2013-6-10 16:31

新博主哦,支持一下,加油!!

相关推荐阅读
赤心木 2013-06-29 15:57
2013.6.29 Zigbee组网
自从组网碰壁之后就是瓶颈了,今天6.29终于突破瓶颈了!!        ST_RadioReceiveIsrCallback函数是必须的,一开始没有把这个函数复制到主函数中,导致了没有把接收到的数据...
赤心木 2013-06-16 15:58
关于STM32W108 ST_RadioInit(radioPowerState)的问题
今天配置radio的时候遇到了一个问题,在单步运行到     status = ST_RadioInit(radioPowerState);   assert(status==ST_S...
赤心木 2013-06-12 14:21
2013.6.12学习radio其他配置
  2013.6.12学习radio其他配置 函数ST_RadioSetCoordinator(TRUE)可以用来使能协调器特征,作为一个PAN里面的老大,协调器可以接受到那些节点发来的数...
赤心木 2013-06-10 23:27
关于E96系列值的0603电阻识别
今天有个同事问我某个0603电阻的组织,一开始没有看清楚,以为写着010,以为是1欧姆,和同事说了,同事说是在电阻本里面拿出来的,是100k,然后我就纳闷啦。。。 仔细一看,其实上面写的不是0...
赤心木 2013-06-09 15:39
[博客大赛] 2013.6.8学习radio发送数据
2013.6.8学习radio发送数据 uint8_t Packet[] = {    0x0f, // packet length including two bytes for the...
EE直播间
更多
我要评论
1
11
关闭 站长推荐上一条 /3 下一条