OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9339|回复: 16

stm8s nrf24l01无线模块调试

[复制链接]

25

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-4-20
在线时间
0 小时
发表于 2013-7-21 14:41:45 | 显示全部楼层 |阅读模式
<b><span style="font-size:24px;">请问如果只用一块无线模块,我要怎么调试它是否成功可以发送或者接收呢?有什么好的方法没?</span></b>
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

107

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2013-5-5
在线时间
0 小时
发表于 2013-7-21 16:34:45 | 显示全部楼层
无线调试必须两个模块,因为你要设置一样的频率,一块的话不知道你有没有带天线的示波器,用示波器看也行!
游走在生活里,你我都是涉世未深的旅人,前方有我们为之心怡的归宿,身后又是一片葱郁的往昔,让生活的零碎随风而来,又似过往的随风云烟而散,唯有这厮,方能守得云开,待到春花烂漫!
回复 支持 反对

使用道具 举报

25

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-4-20
在线时间
0 小时
 楼主| 发表于 2013-7-21 18:35:07 | 显示全部楼层
回复【2楼】冰尘牧之:
<br>---------------------------------
<br>不是有个设置自动应答模式吗?可以不设置自动应答,然后发送数据,是不是就可以知道发送成功了?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-7-21 19:58:21 | 显示全部楼层
回复【3楼】回首看那个曾经的我:
<br>---------------------------------
<br>是的
<br>我们的无线通信例程就有使用自动ack
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

25

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-4-20
在线时间
0 小时
 楼主| 发表于 2013-7-21 20:36:56 | 显示全部楼层
回复【4楼】正点原子:
<br>--------------------------------
<br>用stm8s208cb的内部SPI,寄存器操作,弄了两三天了,崩溃了!!!!能检测NRF24L01模块成功,但是就是收发不了数据。
回复 支持 反对

使用道具 举报

25

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-4-20
在线时间
0 小时
 楼主| 发表于 2013-7-21 20:39:22 | 显示全部楼层
<div>#include "stm8s208cb.h"</div>
<div>#include "lcd12864.h"</div>
<div><br />
</div>
<div>_Bool CSN &nbsp; @PC_ODR:1; &nbsp;//片选信号,推挽输出 &nbsp;</div>
<div>_Bool IRQ &nbsp; @PC_IDR:2; &nbsp;//IRQ主机数据输入,上拉输入</div>
<div>_Bool CE &nbsp; &nbsp;@PC_ODR:3; &nbsp;//发送/接收模式选择?仆焓涑?</div>
<div>_Bool SCK &nbsp; @PC_ODR:5; &nbsp;//PC5 推完输出</div>
<div>_Bool MOSI &nbsp;@PC_ODR:6; &nbsp;//PC6 MOSI 主机推挽输出 (根据速率初始化PC_CR2寄存器)</div>
<div>_Bool MISO &nbsp;@PC_IDR:7; &nbsp;//PC7 SCK 主机不带中断的悬浮输入</div>
<div><br />
</div>
<div>unsigned char &nbsp;TxAddr[]={0xE7,0xE7,0xE7,0xE7,0xE7};//发送地址</div>
<div>unsigned char &nbsp;RxAddr[]={0xE7,0xE7,0xE7,0xE7,0xE7};//接收偷刂?</div>
<div>unsigned char &nbsp;tx_buf[]="send data";</div>
<div><br />
</div>
<div>void CLK_Init(void)</div>
<div>{</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>CLK_CKDIVR = 0x01;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>CLK_SWCR &nbsp;|= 0x02; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //启动时钟切换使能</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>CLK_SWR &nbsp; &nbsp;= 0xB4; &nbsp; &nbsp; &nbsp;// &nbsp; &nbsp; &nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>//配置系统主时钟为外部时钟,准备时钟自动切换</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>while(!(CLK_SWCR &amp; 0x08)); &nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>//等待SWIF置位,表示时钟切换完毕,新时钟代替原时钟</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>if (CLK_CMSR != 0xB4) &nbsp; &nbsp; &nbsp; &nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>while(1); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //校验时钟是否切换</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>CLK_ICKR = 0x00; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//关闭内部时钟HSI</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>CLK_CSSR |= 0x01; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>//开启时钟安全系统:即外部晶振发生意外故障可转换到内部时钟16M</div>
<div>}</div>
<div>void delayms(unsigned int z)</div>
<div>{</div>
<div>&nbsp; unsigned int i,j;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>for(i=z;i&gt;0;i--)</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>for(j=325;j&gt;0;j--);</div>
<div>}</div>
<div>void SPI_GPIO_Init(void)</div>
<div>{</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>C_DDR=0x0A;<span class="Apple-tab-span" style="white-space:pre;">        </span>//0110 1010<span class="Apple-tab-span" style="white-space:pre;">        </span> &nbsp;0000 1010</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>C_CR1=0x0a; // 0110 1010 &nbsp; 0000 1010</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>C_CR2=0x00;// &nbsp;0000 0100 &nbsp; 0000 0000</div>
<div>}</div>
<div>void nRF24L01_Pin_Conf(void)</div>
<div>{</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>SPI_CR1 =0x0c; &nbsp;// 【5:3】24M/4=6M; MSB 先;主设备;CPOL = 0;CPHA= 0 &nbsp;&nbsp;</div>
<div>&nbsp; SPI_CR2 =0x03; &nbsp;// 双线全双工;软件管理;无CRC</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>SPI_CR1|=0x40; &nbsp;// 开启SPI总线</div>
<div>}</div>
<div>unsigned char nRF24L01_SPI_RW(unsigned char data)</div>
<div>{</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>unsigned char temp;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>while (!(SPI_SR&amp;0X02));</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>SPI_DR = data;<span class="Apple-tab-span" style="white-space:pre;">                </span></div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>while (!(SPI_SR&amp;0X01));</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>temp = SPI_DR;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>return temp;</div>
<div>}</div>
<div>unsigned char nRF24L01_Read_Reg(unsigned char RegAddr)</div>
<div>{</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>unsigned char &nbsp;BackData;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>CSN = 0;//启动时序</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>nRF24L01_SPI_RW(RegAddr);<span class="Apple-tab-span" style="white-space:pre;">                </span>/* 写寄存器地址 */<span class="Apple-tab-span" style="white-space:pre;">        </span></div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>BackData = nRF24L01_SPI_RW(0);<span class="Apple-tab-span" style="white-space:pre;">        </span>/* 写入读寄存器指令 */&nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>CSN = 1;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>return BackData;</div>
<div>}</div>
<div>unsigned char nRF24L01_Write_Reg(unsigned char &nbsp;RegAddr,unsigned char &nbsp;data)</div>
<div>{</div>
<div>&nbsp; &nbsp;unsigned char BackData;</div>
<div>&nbsp; &nbsp;CSN = 0;<span class="Apple-tab-span" style="white-space:pre;">                                                </span>/* 启动时序 */</div>
<div>&nbsp; &nbsp;BackData = nRF24L01_SPI_RW(RegAddr);<span class="Apple-tab-span" style="white-space:pre;">        </span>/* 写入地址 */</div>
<div>&nbsp; &nbsp;nRF24L01_SPI_RW(data);<span class="Apple-tab-span" style="white-space:pre;">                                </span>/* 写入值 */</div>
<div>&nbsp; &nbsp;CSN = 0;</div>
<div>&nbsp; &nbsp;return(BackData);</div>
<div>}</div>
<div>unsigned char nRF24L01_Read_RxData(unsigned char RegAddr,unsigned char *RxData,unsigned char DataLen)</div>
<div>{</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>unsigned char &nbsp;BackData,i;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>CSN = 0;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>BackData = nRF24L01_SPI_RW(RegAddr);<span class="Apple-tab-span" style="white-space:pre;">        </span>/* 写入要读取的寄存器地址 */</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>for(i = 0; i &lt; DataLen; i++) <span class="Apple-tab-span" style="white-space:pre;">                        </span>/* 读取数据 */</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>{</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>RxData = nRF24L01_SPI_RW(0);</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>}&nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>CSN = 1;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>return(BackData);</div>
<div>}</div>
<div>unsigned char nRF24L01_Write_TxData(unsigned char RegAddr,unsigned char *TxData,unsigned char DataLen)</div>
<div>{</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>unsigned char BackData,i;</div>
<div>&nbsp; CSN = 0;&nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>BackData = nRF24L01_SPI_RW(RegAddr);<span class="Apple-tab-span" style="white-space:pre;">        </span>/* 写入要写入寄存器的地址 */</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>for(i = 0; i &lt; DataLen; i++)<span class="Apple-tab-span" style="white-space:pre;">                        </span>/* 写入数据 */</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>{</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>nRF24L01_SPI_RW(*TxData++);</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>} &nbsp;&nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>CSN = 1;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>return(BackData);</div>
<div>}</div>
<div>unsigned char NRF24L01_TxPacket(void)</div>
<div>{</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>unsigned char sta;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>while(!(sta&amp;0x20))</div>
<div>&nbsp; {</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>sta=nRF24L01_SPI_RW(0x07);</div>
<div>&nbsp; }</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span> CE=0;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span> nRF24L01_Write_Reg(0x20+0x07,0XFF); //清除TX_DS或MAX_RT中断标志</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span> CSN =0 ;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span> nRF24L01_SPI_RW(0XE1);//清除TX FIFO寄存器&nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span> CSN =1;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span> L12864_string(4,0,"nima");</div>
<div>}</div>
<div>void nRF24L01_Set_TxMode(void)</div>
<div>{</div>
<div>&nbsp; &nbsp; CE = 0;&nbsp;</div>
<div>&nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre;">        </span>nRF24L01_Write_TxData(0x20+0x10,TxAddr,5);<span class="Apple-tab-span" style="white-space:pre;">        </span></div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>/* 为了应答接收设备,接收通道0地址和发送地址相同 */</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span> &nbsp;nRF24L01_Write_TxData(0x20+0x0a,RxAddr,5);<span class="Apple-tab-span" style="white-space:pre;">        </span></div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>nRF24L01_Write_TxData(0xa0,tx_buf,32);<span class="Apple-tab-span" style="white-space:pre;">        </span></div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span></div>
<div>&nbsp; <span class="Apple-tab-span" style="white-space:pre;">        </span>nRF24L01_Write_Reg(0x20+0x01,0x00); &nbsp; &nbsp;//配置自动应答</div>
<div>&nbsp; <span class="Apple-tab-span" style="white-space:pre;">        </span>nRF24L01_Write_Reg(0x20+0x02,0x00); &nbsp; //使能接收通道0</div>
<div>&nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre;">        </span>nRF24L01_Write_Reg(0x20+0x04,0x0a);//建立自动重发250us+86us,自动重发10次&nbsp;</div>
<div>&nbsp; <span class="Apple-tab-span" style="white-space:pre;">        </span>nRF24L01_Write_Reg(0x40+0x05,0x40);//选择射频通道0x40</div>
<div>&nbsp; <span class="Apple-tab-span" style="white-space:pre;">        </span>nRF24L01_Write_Reg(0x20+0x06,0x0f); &nbsp;//设置TX发射参数,0db增益,2Mbps,低噪声增益开启</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>nRF24L01_Write_Reg(0x20+0x11,32);</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span> &nbsp;nRF24L01_Write_Reg(0x20+0x00,0x0e); &nbsp;// CRC使能,16位CRC校验,上电&nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span> &nbsp;CE = 1;</div>
<div>}</div>
<div>unsigned char NRF24L01_Check(void)</div>
<div>{</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>unsigned char buf[5]={0XA5,0xa5,0XA5,0XA5,0XA5};</div>
<div>&nbsp; unsigned char bu1[5];</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>unsigned char i;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>nRF24L01_Write_TxData(0x30,buf,5);//写入5个字节的地址.<span class="Apple-tab-span" style="white-space:pre;">        </span></div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>nRF24L01_Read_RxData(0x10,bu1,5); //读出写入的地址 &nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>for(i=0;i&lt;5;i++)if(bu1!=0XA5)break;<span class="Apple-tab-span" style="white-space:pre;">        </span> <span class="Apple-tab-span" style="white-space:pre;">                                                        </span> &nbsp;&nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>if(i!=5)return 1;//检测24L01错误<span class="Apple-tab-span" style="white-space:pre;">        </span></div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>else return 0;<span class="Apple-tab-span" style="white-space:pre;">                </span> //检测到24L01</div>
<div>}<span class="Apple-tab-span" style="white-space:pre;">        </span> <span class="Apple-tab-span" style="white-space:pre;">        </span></div>
<div>main()</div>
<div>{</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>CLK_Init();</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>LCD12864_GPIO_INIT();</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>lcd12864_Init();<span class="Apple-tab-span" style="white-space:pre;">        </span></div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>SPI_GPIO_Init();</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>nRF24L01_Pin_Conf();</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>while(NRF24L01_Check())//检测不到24L01//返回值为零:成功</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>{</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>L12864_string(1,0,"Check Failed!");</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>delayms(800);</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>L12864_string(1,0,"lease Check!");</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>delayms(800);<span class="Apple-tab-span" style="white-space:pre;">                </span></div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>}<span class="Apple-tab-span" style="white-space:pre;">        </span></div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>CLE_Screen();</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>L12864_string(1,0,"Check OK");</div>
<div>/////////////////////////////////////////////////////////////////////////////////</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>while (1)</div>
<div>&nbsp; {</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>nRF24L01_Set_TxMode();</div>
<div><span class="Apple-tab-span" style="white-space:pre;">                </span>NRF24L01_TxPacket();</div>
<div><span class="Apple-tab-span" style="white-space:pre;">        </span>}</div>
<div>}</div>
回复 支持 反对

使用道具 举报

5

主题

107

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2013-5-5
在线时间
0 小时
发表于 2013-7-21 20:41:44 | 显示全部楼层
回复【3楼】回首看那个曾经的我:
<br>---------------------------------
<br>那你要知道你发送的数据啊
游走在生活里,你我都是涉世未深的旅人,前方有我们为之心怡的归宿,身后又是一片葱郁的往昔,让生活的零碎随风而来,又似过往的随风云烟而散,唯有这厮,方能守得云开,待到春花烂漫!
回复 支持 反对

使用道具 举报

25

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-4-20
在线时间
0 小时
 楼主| 发表于 2013-7-21 20:41:58 | 显示全部楼层
另外我分了压,给无线模块供电大概为3.3V左右。。。
回复 支持 反对

使用道具 举报

25

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-4-20
在线时间
0 小时
 楼主| 发表于 2013-7-21 20:44:02 | 显示全部楼层
回复【7楼】冰尘牧之:
<br>---------------------------------
<br>我发送了一个数据,我只要能知道发出去了就行了。所以在NRF24L01_TxPacket()函数里面弄了一个输出标志:&nbsp;L12864_string(4,0,"nima");
回复 支持 反对

使用道具 举报

25

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-4-20
在线时间
0 小时
 楼主| 发表于 2013-7-21 20:45:50 | 显示全部楼层
回复【4楼】正点原子:
<br>---------------------------------
<br>自动ACK是要两块无线模块才可以吧,不然没应答的。所以尝试了设置自动应答和不自动应答的;nRF24L01_Write_Reg(0x20+0x01,0x00);&nbsp;&nbsp;&nbsp;&nbsp;//配置自动应答
<br>&nbsp;&nbsp;        nRF24L01_Write_Reg(0x20+0x02,0x00);&nbsp;&nbsp;&nbsp;//使能接收通道0
回复 支持 反对

使用道具 举报

5

主题

107

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2013-5-5
在线时间
0 小时
发表于 2013-7-21 21:15:00 | 显示全部楼层
回复【9楼】回首看那个曾经的我:
<br>---------------------------------
<br>好吧,不过最终的目的不是还要发射接收吗
游走在生活里,你我都是涉世未深的旅人,前方有我们为之心怡的归宿,身后又是一片葱郁的往昔,让生活的零碎随风而来,又似过往的随风云烟而散,唯有这厮,方能守得云开,待到春花烂漫!
回复 支持 反对

使用道具 举报

25

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-4-20
在线时间
0 小时
 楼主| 发表于 2013-7-21 21:41:44 | 显示全部楼层
回复【11楼】冰尘牧之:
<br>---------------------------------
<br>嗯啊。调试了两天了。。还没出来啊。不知道硬件问题还是软件问题啊啊。。
回复 支持 反对

使用道具 举报

5

主题

107

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2013-5-5
在线时间
0 小时
发表于 2013-7-21 21:43:36 | 显示全部楼层
回复【12楼】回首看那个曾经的我:
<br>---------------------------------
<br>建议你用两块调试,主要看时候能连上,连上了,一切OK
游走在生活里,你我都是涉世未深的旅人,前方有我们为之心怡的归宿,身后又是一片葱郁的往昔,让生活的零碎随风而来,又似过往的随风云烟而散,唯有这厮,方能守得云开,待到春花烂漫!
回复 支持 反对

使用道具 举报

25

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-4-20
在线时间
0 小时
 楼主| 发表于 2013-7-22 11:22:38 | 显示全部楼层
回复【13楼】冰尘牧之:
<br>---------------------------------
<br>好吧。烧了一块去了。。。
回复 支持 反对

使用道具 举报

5

主题

110

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2013-9-16
在线时间
0 小时
发表于 2014-12-25 12:58:32 | 显示全部楼层
主机可以通过切换频率参数来分别和B&nbsp;C节点通讯,方法如下
<br>&nbsp;
<br>第一步-&gt;&nbsp;设置电平SETA=1&nbsp;SETB=1&nbsp;进入参数设置模式
<br>第二步-&gt;&nbsp;0xFF&nbsp;0x56&nbsp;0xAE&nbsp;0x35&nbsp;0xA9&nbsp;0x55&nbsp;0x9F&nbsp;0x00&nbsp;0x03&nbsp;0x07&nbsp;0x2f&nbsp;0xD8
<br>第三步-&gt;&nbsp;等待返回0x24&nbsp;0x24&nbsp;0x24&nbsp;0x07&nbsp;0x2f&nbsp;0xD8&nbsp;后再设置电平SETA=0&nbsp;SETB=0&nbsp;进入正常收发模式
<br>第四步-&gt;&nbsp;输入要传的数据即可将数据传输给B节点
<br>&nbsp;
<br>&nbsp;
<br>第五步-&gt;&nbsp;设置电平SETA=1&nbsp;SETB=1&nbsp;进入参数设置模式
<br>第六步-&gt;&nbsp;0xFF&nbsp;0x56&nbsp;0xAE&nbsp;0x35&nbsp;0xA9&nbsp;0x55&nbsp;0x9F&nbsp;0x00&nbsp;0x03&nbsp;0x07&nbsp;0x33&nbsp;0xC0
<br>第七步-&gt;&nbsp;等待返回0x24&nbsp;0x24&nbsp;0x24&nbsp;0x07&nbsp;0x33&nbsp;0xC0后再设置电平SETA=0&nbsp;SETB=0&nbsp;进入正常收发模式
<br>第八步-&gt;&nbsp;输入要传的数据即可将数据传输给C节点
<br>&nbsp;
<br>更多节点以此类推即可
<br>&nbsp;
<br>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<br>例如变址多点通讯,
<br>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<br>&nbsp;
<br>例如
<br>当主机为WLK01L39模块,
<br>主机A本机地址1:0x01,本机地址2:0x01,
<br>从机B本机地址1:0x02&nbsp;,本机地址2:0x01&nbsp;,
<br>从机C本机地址1:0x03,本机地址2:0x01&nbsp;,&nbsp;&nbsp;
<br>主机可以通过切换目标地址参数来分别和B&nbsp;C节点通讯,因为在频率一样的前提下
<br>只有主机的目标地址和从机的本机地址一致时,对应从机才能与其建立通讯,并接收数据方法如下
<br>&nbsp;
<br>第一步-&gt;&nbsp;设置电平SETA=1&nbsp;SETB=1&nbsp;进入参数设置模式
<br>第二步-&gt;&nbsp;0xFF&nbsp;0x56&nbsp;0xAE&nbsp;0x35&nbsp;0xA9&nbsp;0x55&nbsp;0x8E&nbsp;0x00&nbsp;0x01&nbsp;0x02&nbsp;
<br>第三步-&gt;&nbsp;等待返回0x24&nbsp;0x24&nbsp;0x24&nbsp;&nbsp;0x02&nbsp;后再&nbsp;设置电平SETA=0&nbsp;SETB=0&nbsp;进入正常收发模式
<br>第四步-&gt;&nbsp;输入要传的数据即可将数据传输给B节点
<br>&nbsp;
<br>&nbsp;
<br>第五步-&gt;&nbsp;设置电平SETA=1&nbsp;SETB=1&nbsp;进入参数设置模式
<br>第六步-&gt;&nbsp;0xFF&nbsp;0x56&nbsp;0xAE&nbsp;0x35&nbsp;0xA9&nbsp;0x55&nbsp;0x8E&nbsp;0x00&nbsp;0x01&nbsp;0x03
<br>第七步-&gt;&nbsp;等待返回0x24&nbsp;0x24&nbsp;0x24&nbsp;&nbsp;0x03&nbsp;后再设置电平SETA=0&nbsp;SETB=0&nbsp;进入正常收发模式
<br>第八步-&gt;&nbsp;输入要传的数据即可将数据传输给C节点
<br>&nbsp;
<br>更多节点以此类推即可
<br>&nbsp;
<br>###################################################################
<br>多点通讯还有一种最简单的方式,就是点名通讯
<br>###################################################################
<br>1.主机和从机的参数都完全一样
<br>2.都处于正常收发模式
<br>3.当主机A发0x01(该指令可自定义),
<br>&nbsp;&nbsp;当从机B和从机C都收到0x01,
<br>&nbsp;&nbsp;从机B视0x01为上传数据命令,立刻发射要上传数据,然后主机A会收到B上传数据,而从机C视0x01为无效指令,不发送数据
<br>&nbsp;&nbsp;当主机A发0x02(该指令可自定义),
<br>&nbsp;&nbsp;当从机B和从机C都收到0x01,
<br>&nbsp;&nbsp;从机C视0x02为上传数据指令,立刻发射要上传数据,然后主机A会收到C上传数据,而从机B视0x02为无效指令,不发送数据
<br>更多节点以此类推即可
<br>------------------
<br>NRF905&nbsp;RF903&nbsp;CC1100&nbsp;CC2500&nbsp;CC1020&nbsp;NRF2401&nbsp;NRF24L01&nbsp;无线数传芯片/模块性能汇总及应用指南
<br>你好,我们是无线制造供应商,欢迎交流
<br>QQ:35625400&nbsp;&nbsp;&nbsp;&nbsp;MSN:ll88mm88@hotmail.com&nbsp;
<br>HONE:13704018223&nbsp;&nbsp;&nbsp;陈工
RFinchina 团队欢迎无线方面的技术交流 QQ 474882985
回复 支持 反对

使用道具 举报

21

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-1-10
在线时间
10 小时
发表于 2015-9-16 12:42:47 | 显示全部楼层
回复【14楼】回首看那个曾经的我:
<br>----------------------------我也用stm8s调试&nbsp;&nbsp;发现读出的寄存器值都一样呢
个人博客www.xiaovdiy.cn
https://shop100764513.taobao.com/
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-10-28
在线时间
0 小时
发表于 2015-10-28 18:58:41 | 显示全部楼层
回复【6楼】回首看那个曾经的我:
<br>---------------------------------------
<br>我也遇到了相同的情况,怎么回事?哪位高点指点一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 12:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表