- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
今天我得到了一些很酷的 radio 接收器和发射器,问题是当我输入我想发送的消息时,它会在另一个 arduino 上吐出乱码。
//transmitter
#include <VirtualWire.h>
void setup()
{
Serial.begin(9600);
vw_set_ptt_inverted(true);
vw_setup(3000);
vw_set_tx_pin(7);
}
void loop()
{
String inData;
while(Serial.available())
{
char recieved = Serial.read();
inData += recieved;
char bits[inData.length()];
Serial.print(":");
Serial.print(inData);
for(int i=0;i<inData.length();i++)
{
bits[i] = inData.charAt(i);
vw_send((uint8_t *)bits[i], 1);
}
inData = "";
delay(50);
}
}
//下面是接收者!
#include <VirtualWire.h>
void setup()
{
vw_set_ptt_inverted(true);
pinMode(13,OUTPUT);
digitalWrite(13,LOW);
Serial.begin(9600);
vw_setup(3000);
vw_set_rx_pin(7);
vw_rx_start();
}
void loop()
{
uint8_t buflen = VW_MAX_MESSAGE_LEN;
uint8_t buf[buflen];
if(vw_get_message(buf, &buflen))
{
for(int i = 0;i < buflen;i++)
{
char c = buf[i];
Serial.println(c,DEC);
delay(50);
}
}
}
因此,如果我输入“hello”,在另一个串口上我会看到“0 53 0 0 2”,这很奇怪,因为我总是得到相同数量的字符,但不是我想要的实际字符.
最佳答案
所以我本身没有答案,因为我不知道它会有所帮助,但我注意到您的代码中有些怪癖。
我注意到您在接收器中为 OUTPUT
配置了 pin,但您希望它充当接收器。我对 Arduino 硬件及其配置不够熟悉,但请确保将其设置为 OUTPUT
不会影响其由发射器驱动的能力。可能发生的情况是线路上存在争用 - 您的发送器正在发送数据,但接收器试图保持线路 LOW
,导致垃圾数据(具有相同数量的您传输的字符!)。
此外,基于发布的示例 here ,看来您需要在这两种情况下都定义传输启用引脚。看起来库有一个中断服务例程,它依赖于 PTT 线来指示传输的开始。这可能会导致依赖 PTT 中断发送或接收信号的任何一端出现很多问题,尤其是在涉及流量控制的情况下。
最后,示例代码在发送更多数据之前使用了 vw_wait_tx()
函数调用。在尝试执行另一个 TX 操作之前,您只需等待 50 毫秒,这可能不足以让发送器完成发送它拥有的任何数据。我不知道该库的具体实现,但我肯定会使用此函数来确保您不会尝试发送超过端口可以处理的数据。
关于c - 使用 433 mhz 发射器/接收器从一个 arduino 向另一个发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24581896/
是否可以通过Java编程方式知道CPU的最大速度(MHZ)? 在谷歌上进行了大量搜索后,我没有找到获取它的方法。 我找到了一种在 Android 中有效的方法,但我不是为 Android 开发这个方法
所以我刚刚注意到我的中文 Arduino Uno 有一个 12 MHz 的晶体而不是原来的 16Mhz。 我进行了计算,结果发现相差了四分之一毫秒。 我的问题: 这会影响伺服系统或音调 () 或任何其
我想创建一个应用程序,以 MHz 为单位监控并向用户显示系统处理器中每个内核的频率。我见过其他应用程序这样做,例如 Piriform's Speccy , 所以我知道这一定是可能的。 我曾尝试在 St
我正在为 FRDM-KL46Z 平台开发 IAR 编译器。我想使用内部时钟并将其设置为 48 MHz(或尽可能最大值)。到目前为止,我已经在提供的示例 sysinit.c 文件和函数 sysinit(
如何获得 Android 设备的处理器速度(以 MHz 为单位)?我能够根据 BogoMips 获得速度通过读取 \proc\cpuinfo 文件。如何将 BogoMips 转换为 MHz,或者是否有
我正在准备一个单位测验,有两种转换让我很难过。 类型一: XXX 计算机上一个周期的长度(以 ns 为单位)是多少? - 在这种情况下,XXX 可以是一些 MHz 或 Ghz,随机。我在转换 cyle
编辑:PIC 16F684 好的,我有一个简单的 3 LED 二进制时钟,从 0 到 7 计数,并且希望在每个灯打开之间添加大约 1 秒的延迟。 我发现每个灯都需要处于某种循环中,并且我必须使用计数来
我想制作一个 android 应用程序,它将接收从 RF 链路发射器(https://www.sparkfun.com/products/10535?)传输的基本数据。我想首先知道是否有可能以某种方式
我有这个脚本来获取 RPi 的当前 CPU 速度 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq | awk '{if($NF+0>
今天我得到了一些很酷的 radio 接收器和发射器,问题是当我输入我想发送的消息时,它会在另一个 arduino 上吐出乱码。 //transmitter #include void setup()
首先,我是 Arduino 的初学者。我有一个电路,包括:一个 Arduino Uno、一个 RFID RC522 读卡器和一个 RF 433 MHz 模块的发送器。 我正在尝试使用 RF 433MH
我在各种操作系统上运行一些计时代码。我注意到 QueryPerformanceCounter 的结果有以下模式 标准 Windows XP 使用处理器频率,这意味着它在后台使用 RDTSC。 Vist
开始之前:是的,我知道答案是 architecture dependent - 我只对大致数字感兴趣,就数量级而言。 linux内核对中断频率有上限吗? 背景:我想在 Linux 中连接相机模块。该模
我有一个评估套件,它具有 ARM Cortex-A8 内核的实现。处理器数据表指出它具有 ARM Cortex A8™ core, which operates at speeds as high a
最近新买了一个USB示波器,想测avr timer0的频率。有一个 12 MHz 晶体振荡器连接到 atmega,timer0 设置为没有预分频器的快速 PWM 模式。这是代码: #include
我正在使用 Jupyter Notebook 和 Tensorflow GPU 后端运行 Keras。我使用各种虚拟模型进行了一些测试,同时使用 MSI Afterburner、GPU-Z、nvidi
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
目前,我已经为我的一个嵌入式板(Galileo Gen 2)制作了一个嵌入式 GUI 应用程序。该应用程序可以执行 I²C、SPI、GPIO、ADC、UART 和 PWM 的测试事件,包括它们的 Pi
我正在使用 Arduino Mega 2560 进行一个项目,LCD Keypad Shield ,以及 RFID 13.56 MHz MF522 模块。 问题是 LCD 键盘屏蔽和 RFID MF5
我是一名优秀的程序员,十分优秀!