共2条
1/1 1 跳转至页
nRF9E5 请问各位大侠一个nRF9E5的问题!

问
第一,spi的访问寄存器的指令应该是通过spi_data寄存器进行访问的。但是程序中
RACSN=0;
SPIREADWRITE(RRC|0X09);
TMP=SPIREADWRITE(0)&0X0C;
RACSN=1;
在第二句的子程序中有一个将SPI_DATA返回的语句,那么就是说读取RF CONFIG REGISTER的地址9这条指令输入后有一个返回值(这个只是不是应该就是地址9的内容)。可是程序的第三句中显示SPIREADWRITE(0)的返回值才是地址9的内容。请您帮我解答。
第二,在程序开始有一句
define CHANNEL 351
并且在INIT设置中有
SpiReadWrite(WRC); // Write RF config address 0
SpiReadWrite(CHANNEL & 0xff); // CHANNEL bit7..0
SpiReadWrite(tmp | (POWER<<2) | (HFREQ << 1) | ((CHANNEL >> 8) & 0x01));
这应该表示CHANNEL & 0xff是写入RF config第0个字节,即CH_NO7-0.
如果CHANNEL作为CH_NO的低八位,那么把它设置成351(15FH)岂不是超过了8位二进制码?这么设的理由是什么,f(MHz) = (422.4+CHANNEL/10)*(1+HFREQ)这个公式来源于哪里,请您解答。
第三,在上一个问题的第三句中,tmp | (POWER<<2) | (HFREQ << 1) | ((CHANNEL >> 8) & 0x01)是写入RF CONFIG地址1的内容,那么tmp | (POWER<<2) | (HFREQ << 1) | ((CHANNEL >> 8) & 0x01)代表什么呢?
第四,在程序段
RACSN = 0;
SpiReadWrite(RRC | 0x09);
// tmp = SpiReadWrite(0) | 0x04;
tmp = SpiReadWrite(0) | 0x0C;
RACSN = 1;
RACSN = 0;
SpiReadWrite(WRC | 0x09);
SpiReadWrite(tmp);
RACSN = 1;
// Configure Radio:
RACSN = 0;
SpiReadWrite(WRC | 0x03); // Write to RF config address 3 (RX payload)
SpiReadWrite(0x01); // One byte RX payload
SpiReadWrite(0x01); // One byte TX payload
RACSN = 1;
RACSN = 0;
SpiReadWrite(RRC | 0x01); // Read RF config address 1
tmp = SpiReadWrite(0) & 0xf0; // Clear the power and frequency setting bits
RACSN = 1;
RACSN = 0;
SpiReadWrite(WRC); // Write RF config address 0
SpiReadWrite(CHANNEL & 0xff); // CHANNEL bit7..0
// Change power defined by POWER above, to 433 or 868/915MHz defined by HFREQ and
// bit8 of CHANNEL:
SpiReadWrite(tmp | (POWER<<2) | (HFREQ << 1) | ((CHANNEL >> 8) & 0x01));
SpiReadWrite(0x44); //2004.11.13
SpiReadWrite(0x01); // One byte RX payload
SpiReadWrite(0x01); // One byte TX payload
SpiReadWrite(0xE7);
SpiReadWrite(0xE7);
SpiReadWrite(0xE7);
SpiReadWrite(0xE7);
RACSN = 1;
为什么上面已经设置过地址2,3而下面又重新设置了呢? 答 1: 好象天津weilei再搞
RACSN=0;
SPIREADWRITE(RRC|0X09);
TMP=SPIREADWRITE(0)&0X0C;
RACSN=1;
在第二句的子程序中有一个将SPI_DATA返回的语句,那么就是说读取RF CONFIG REGISTER的地址9这条指令输入后有一个返回值(这个只是不是应该就是地址9的内容)。可是程序的第三句中显示SPIREADWRITE(0)的返回值才是地址9的内容。请您帮我解答。
第二,在程序开始有一句
define CHANNEL 351
并且在INIT设置中有
SpiReadWrite(WRC); // Write RF config address 0
SpiReadWrite(CHANNEL & 0xff); // CHANNEL bit7..0
SpiReadWrite(tmp | (POWER<<2) | (HFREQ << 1) | ((CHANNEL >> 8) & 0x01));
这应该表示CHANNEL & 0xff是写入RF config第0个字节,即CH_NO7-0.
如果CHANNEL作为CH_NO的低八位,那么把它设置成351(15FH)岂不是超过了8位二进制码?这么设的理由是什么,f(MHz) = (422.4+CHANNEL/10)*(1+HFREQ)这个公式来源于哪里,请您解答。
第三,在上一个问题的第三句中,tmp | (POWER<<2) | (HFREQ << 1) | ((CHANNEL >> 8) & 0x01)是写入RF CONFIG地址1的内容,那么tmp | (POWER<<2) | (HFREQ << 1) | ((CHANNEL >> 8) & 0x01)代表什么呢?
第四,在程序段
RACSN = 0;
SpiReadWrite(RRC | 0x09);
// tmp = SpiReadWrite(0) | 0x04;
tmp = SpiReadWrite(0) | 0x0C;
RACSN = 1;
RACSN = 0;
SpiReadWrite(WRC | 0x09);
SpiReadWrite(tmp);
RACSN = 1;
// Configure Radio:
RACSN = 0;
SpiReadWrite(WRC | 0x03); // Write to RF config address 3 (RX payload)
SpiReadWrite(0x01); // One byte RX payload
SpiReadWrite(0x01); // One byte TX payload
RACSN = 1;
RACSN = 0;
SpiReadWrite(RRC | 0x01); // Read RF config address 1
tmp = SpiReadWrite(0) & 0xf0; // Clear the power and frequency setting bits
RACSN = 1;
RACSN = 0;
SpiReadWrite(WRC); // Write RF config address 0
SpiReadWrite(CHANNEL & 0xff); // CHANNEL bit7..0
// Change power defined by POWER above, to 433 or 868/915MHz defined by HFREQ and
// bit8 of CHANNEL:
SpiReadWrite(tmp | (POWER<<2) | (HFREQ << 1) | ((CHANNEL >> 8) & 0x01));
SpiReadWrite(0x44); //2004.11.13
SpiReadWrite(0x01); // One byte RX payload
SpiReadWrite(0x01); // One byte TX payload
SpiReadWrite(0xE7);
SpiReadWrite(0xE7);
SpiReadWrite(0xE7);
SpiReadWrite(0xE7);
RACSN = 1;
为什么上面已经设置过地址2,3而下面又重新设置了呢? 答 1: 好象天津weilei再搞
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 | |
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 |