EDA365电子论坛网
标题:
NRF905多点通信中由于发送过数据而导致接收不到数据了,这要咋解决呢?
[打印本页]
作者:
BGo
时间:
2022-10-31 11:24
标题:
NRF905多点通信中由于发送过数据而导致接收不到数据了,这要咋解决呢?
A发给B或B发给A都可以实现,但是A发给B,B收到后再发给A,A就收不到了,可以确定B确实发出去了,但A没有收到数据,地址和发送接收状态都没问题
! H$ g \; N; b" \) y
下面我把A和B的主函数发一下
8 @0 N" E4 H0 I- {8 ^7 D
" Y7 b- a. l! w! U2 ?
while(1)
/ g q+ V( }5 O, L
{
. c) A! q, s C- j# `$ B: t n
SetTxMode(); // Set Tx Mode
2 P t' o) n$ p* `% [; j3 [
TxPacket(); // Transmit Tx buffer data
8 i: a9 W: P/ ^- V% N
SetRxMode();
6 j$ ?7 k7 N& \$ E& g2 N& y
//=====================等待NRF905接收
3 } h! I |) _+ T' h9 g+ w
if (DR) // If recive data ready...
& i& I1 g- }# ?6 l
RxPacket(); // ... recive data
0 m7 O, Z/ o3 e# b" Y5 N1 A
if(RxBuf[0]==0x01)
T p1 }) V% Q" r$ g$ U
{
3 f2 y0 d- a# X. O. _/ z
RxBuf[0] =0;
* p( _4 X. r; e0 R
LED1 = 0 ;
, o) m% t0 V0 Z3 }: p
Delay(1000); // ...light led
: _' ^; i; ~! P+ A( T5 Y+ _3 `2 L
LED1 = 1 ;
; a* I% E3 c" e& U* t
Delay(500); // ...light led
/ g% E& v* W" f+ p' _
2 W6 k! W; _. x7 z) B: {
}
- Y2 E( J3 ]# @( }
}
+ A, y2 Q, i, @6 c
上面这个是A的程序,下面我把B的程序发一下
V- b5 q3 h# g. v+ C
while(1)
( X4 v7 g* O% S
{
: g# R5 V, U3 ~4 Y, ~
SetRxMode();
& ~, K* X# G3 Y6 K
//=====================等待NRF905接收
! ?7 N/ j E0 V* R8 B+ T2 f% I$ y8 \
if (DR) // If recive data ready...
9 e5 E4 k7 n& v# }9 a
RxPacket(); // ... recive data
( C9 }8 W5 \! u3 W8 p8 w
if(RxBuf[0]==0xaa)
3 M+ v. ^- o! ^. P1 p
{
, w% t$ J0 |8 C5 r4 T9 u! S: r
RxBuf[0]=0;
9 ]$ W" l9 z/ M* {9 Z" c
LED1 = 0;
5 p U0 D- E$ s; y- l5 Z
Delay(1000);
) I5 C) o2 [4 \
LED1 = 1;
- U; \$ r, T+ L9 D" l) @
Delay(500);
' Z9 X" s4 T; J3 e) t
" W m. ]4 i; N3 s
SetTxMode(); // Set Tx Mode
! u) ^/ A; z+ K# @& ?
TxPacket(); // Transmit Tx buffer data
3 R& f2 H/ w! `% |; ]4 r4 G1 L
}
' T' g: @6 C% q8 x% i* s5 d& T
}
% ^+ b; d6 E- t' N0 r+ j) T
上面这个是B的程序
5 a$ V/ Q1 I" }! [
我的目的是通过A发送给B一个命令,B在接收到特定的数据后返回给A数据,在这个过程中可以确定的是B确实收到了,而且B也发出来了,但是A却收不到,而且地址和模式都是对的,这点可以由上面程序看到。
. v5 U6 @ F5 p1 s/ O$ p5 {
现在我感觉就是由于A发送过而导致A不能接收到数据了,但是我不知道是不是要重新设置什么东西,我曾经试过重新初始化和重新配置寄存器但是都没用
; G( z7 v0 S8 G K1 k
作者:
opipo
时间:
2022-10-31 13:07
A此时没有处于接受状态!
( w4 b, |+ W/ ]" _
作者:
three
时间:
2022-10-31 14:47
B收到数据LED灯亮一下,你确定B发送的数据是01H吗?是A想要的吗?
1 \, C! i1 E- n+ Y% o
作者:
dsgh
时间:
2022-10-31 14:57
A 发送完成以后,设置 REN=1,允许接收,试一试
" t+ c y3 s q, N3 Q# m& e& z
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2