代码不会发送我想要的权衡
Code does not send what I want repedeately
我试图制作一个有关NRF24L01 的项目,并将其连接到Arduino和Raspberry Pi。然后,我写了代码。它没有回应。因此,我从一个网站上拿走了它,它起作用了。但是,它是一次发送消息。但是那里的代码是为了持续发送的。因此,我决定在Arduino代码中放置一条串行线,以弄清楚我在做错了什么。正如预期的那样,串行线一次打印了" A"。但是我将其放在一个循环中!所以,你们对我做错了什么有想法吗?
Arduino代码如下:
//These libraries are fully downloaded.
#include<SPI.h>
#include<RF24.h>
// ce, csn pins, connected properly.
RF24 radio(9, 10) ;
//Here, I set up the stuff needed for the Transciever.
void setup(void){
radio.begin() ;
radio.setPALevel(RF24_PA_MAX) ;
radio.setChannel(0x76) ;
radio.openWritingPipe(0xF0F0F0F0E1LL) ;
radio.enableDynamicPayloads() ;
radio.powerUp() ;
Serial.begin(9600);
}
void loop(void){
const char text[] = "Hello World!" ;
Serial.println("A");
radio.write(&text, sizeof(text)) ;
delay(1000) ;
//s
}
和RPI3代码如下所示:
#The libraries are downloaded.
import RPi.GPIO as GPIO
from lib_nrf24 import NRF24
import time
import spidev
GPIO.setmode(GPIO.BCM)
pipes = [[0xE8, 0xE8, 0xF0, 0xF0, 0xE1], [0xF0, 0xF0, 0xF0, 0xF0, 0xE1]]
radio = NRF24(GPIO, spidev.SpiDev())
radio.begin(0, 17)
radio.setPayloadSize(32)
radio.setChannel(0x76)
radio.setDataRate(NRF24.BR_1MBPS)
radio.setPALevel(NRF24.PA_MIN)
radio.setAutoAck(True)
radio.enableDynamicPayloads()
radio.enableAckPayload()
radio.openReadingPipe(1, pipes[1])
radio.printDetails()
radio.startListening()
try:
while(1):
# ackPL = [1]
while not radio.available(0):
time.sleep(1 / 100)
receivedMessage = []
radio.read(receivedMessage, radio.getDynamicPayloadSize())
print("Received: {}".format(receivedMessage))
print("Translating the receivedMessage into unicode characters")
string = ""
for n in receivedMessage:
# Decode into standard unicode set
if (n >= 32 and n <= 126):
string += chr(n)
print("Out received message decodes to: {}".format(string))
except KeyboardInterrupt:
GPIO.cleanup()
那么,您在我的代码中看到了任何问题吗?我真的需要解决这个问题。这是我从那里获得的链接:https://www.google.com.tr/url?sa = t& amp; rct=j& q =&q =&amp;vpcdxo7hahukyaykhzp9dq8qfjakegqiaxab&amp; amp; url = http%3A%2f%2f thezanshow.com%2felectrectronics tutorials tutorials%2fraspberry pi everperry-pi%2ftuter-pi%2ftutorial-2ftutorial-2ftutorial-34-35&amp; usg = usg = aofvawawawawawawawawawaw26oekcm> cm> cm> cm> cm> cm> cm> cm> cm> cm> cm> cm> cm>
,这是我运行代码时终端的屏幕截图:图像
RF24模块的文档说,写入功能会阻止收回者的成功确认:写入写作功能,因此我假设您不会从RPI中发送任何确认。我建议仔细阅读文档并选择其他写作方法之一。还要查看lib_nrf24
- 如何设置一个范围来提取我想要获得的信息
- 链接列表运算符重载没有打印出我想要的内容
- 莱克斯没有返回我想要的东西
- 而不是那么多的 if 语句,我想要一个逻辑,我可以用一个语句或优化的方式来完成
- 我想要一个具有子函数的函数访问相同的命名函数,而不使用它取决于其子类的类
- 如何让m_refcount变量打印出我想要的值而不是垃圾
- 我想要一个改变数组快速排序的2个数字的函数
- 输出不是我想要C++的
- 使用运算符覆盖排序没有得到我想要的
- C ++,否则文本程序不会进入我想要的途径
- 如何声明一个未知大小的数组,然后输入直到我想要,然后获取数组的大小
- 我如何使用 juce 的文件过滤器描述我想要的文件过滤器?
- 如何设置此视觉工作室 (2015) 自定义生成步骤(工具?基本上,我想要一个修改头文件(c ++)的预处理器步骤
- 代码不会发送我想要的权衡
- 无法在openGL和GLUT中为我想要的确切对象设置动画
- 我如何强迫Visual Studio使用我想要的依赖性库名称
- 我的 OpenGL QQuickItem 没有我想要的大小
- 我可以/应该在 #ifndef 后输入任何我想要的东西
- C++ microshell,输入一个命令并使用fork(),dup(),pipe()将其通过管道传输到进程。只是我没有得到我想要的结果
- 矢量在C++中,我的代码可以工作,但不是我想要的那样