首页 > 试题

radio怎么读

更新时间:2022-11-15 10:00:04 阅读: 评论:0

初中生刷题神器-孝亲敬老故事


2022年11月15日发(作者:人民的名义23)

解决nrf52832radio配置反复切换,radio不能读标签的问题

切换配置时,radio还在等待读卡的状态,官⽅读取程序如下:

/**@briefFunctionforreadingpacket.

*/

uint32_tread_packet(uint8_t*received,uint32_t*getRssisample)

{

uint32_tresult=0;

NRF_RADIO->EVENTS_READY=0U;

//Enableradioandwaitforready

NRF_RADIO->TASKS_RXEN=1U;

while(NRF_RADIO->EVENTS_READY==0U)

{

//wait

}

NRF_RADIO->EVENTS_END=0U;

//Startlisteningandwaitforaddressreceivedevent

NRF_RADIO->TASKS_START=1U;

//Waitforendofpacketorbuttonsstatechanged

while(NRF_RADIO->EVENTS_END==0U)//会⼀直在这⾥等待接收标签数据

{

if(rfidConfiged==1){

rfidConfiged=0;

break;

}

//wait

}

if(NRF_RADIO->CRCSTATUS==1U)

{

//getRssisample=NRF_RADIO->RSSISAMPLE;

if(rfidMode==1){

memcpy(received,(((char*)packet)+2),10);

}el{

memcpy(received,packet,10);

}

*getRssisample=NRF_RADIO->RSSISAMPLE;

result=1;

}

NRF_RADIO->EVENTS_DISABLED=0U;

//Disableradio

NRF_RADIO->TASKS_DISABLE=1U;

while(NRF_RADIO->EVENTS_DISABLED==0U)

{

//wait

}

returnresult;

}

如果radio仍处于读卡状态,这时切换配置,会卡死在while(NRF_RADIO->EVENTS_END==0U)这个循环⾥,就算有相应配置的标签也

读不到。

解决⽅法:停⽌读卡,切换配置,重新读卡。代码如下:

voidradio_change()

{

NRF_RADIO->EVENTS_DISABLED=0;//停⽌读卡

NRF_RADIO->TASKS_DISABLE=1u;

while(NRF_RADIO->EVENTS_DISABLED==0u){

}

radio_configure();//配置radio

NRF_RADIO->PACKETPTR=(uint32_t)packet;

NRF_RADIO->EVENTS_READY=0U;//重新读卡

//Enableradioandwaitforready

NRF_RADIO->TASKS_RXEN=1U;

while(NRF_RADIO->EVENTS_READY==0U)

{

}

NRF_RADIO->EVENTS_END=0U;

//Startlisteningandwaitforaddressreceivedevent

NRF_RADIO->TASKS_START=1U;

}

本文发布于:2022-11-15 10:00:04,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/23589.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:豹子英语
标签:radio怎么读
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图