serial-port 相关问题

串行端口是一个物理接口,通过该接口一次一位地传输数据(单向或双向)。该术语通常指的是带有9针d-sub连接器的RS-232端口,该连接器曾经是PC上的标准串行接口。

QSerialPort write() 不传输数据

我对 QSerialPort 有一个令人抓狂的问题,其中 write() 不传输任何数据。下面是我连接和断开串行端口 (/dev/ttyUSB2) 的类。 布尔 pcon::

回答 1 投票 0

蓝牙监听器 - 如何监听来自蓝牙设备的消息

我正在尝试创建一个监听蓝牙消息的服务器(带有蓝牙的计算机)。我正在使用 32 英尺的图书馆。但我遇到了例外,我找不到它是什么。 例外的是: 没有

回答 2 投票 0

当Reader“挂起”时,如何中断它(Reader.read() 需要超时)

这个问题与使用 Chrome Serial API 时发生的情况有关,但可能与任何 ReadableStream 相关。我研究了文档,可能错过了一些功能......

回答 3 投票 0

从 .NET 4.8 到 .NET 6 - .NET 8 的串行端口迁移

我想从.NET 4.8迁移到.NET 8,在以前版本的.NET中,我们可以通过创建SerialPort对象并为其分配读取事件来获取响应来使用串行端口。 我想使用 ReadAsync 满足...

回答 1 投票 0

Modbus RTU 无法读取所有数据

我正在使用RS485研究modbus协议。我的框架是 01 03 00 00 00 61 84 22。通过此框架时,我可以看到响应,但如果我将框架设置为 01 03 00 00 00 62 C4 23,我就得不到

回答 1 投票 0

Linux/C/C++:为什么使用串行/USB 上的阻塞或非阻塞读取

我正在使用 和 通过串行/USB (/dev/ttyACM0) 从设备读取()/写入() 终止文本字符串。 首先,我使用 write() 发送命令。 使用阻塞模式时(

回答 1 投票 0

如何在MS-DOS x86汇编语言中检测16550 UART芯片?

我正在尝试如何在MS-DOS汇编中编写代码来检测是否安装了16550 UART芯片(串行控制器),或者是否有通用方法来检测UART芯片安装的型号...

回答 2 投票 0

如何修复在Windows上使用flutter_libserialport包读取串行输入时返回的空值?

我正在开发一个 flutter destop 应用程序,它必须从 esp32 板读取串行输入。我正在使用 flutter_libserialport 包。读取内容为空。当我使用端口读取器进行流式传输时,我只得到...

回答 1 投票 0

Arduino 串行读取读取超过一个字节

我在读取串行字节时遇到问题。 如果我输入 A,代码会输出:This just in ... A。 这是正确的,但是当我输入超过 1 个字符时就会出现问题。 输入:AAA 输出: 这个...

回答 1 投票 0

使用 433 mhz 发射器/接收器从一个 arduino 向另一个 arduino 发送消息

今天我得到了一些很酷的无线电接收器和发射器,问题是当我输入消息时我想发送它在另一个arduino上吐出乱码。 //发射机 #包括 今天我得到了一些很酷的无线电接收器和发射器,问题是当我输入消息时我想发送它在另一个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的引脚,但您希望它充当接收器。我对 Arduino 硬件及其配置不太熟悉,但请确保将其设置为 OUTPUT 不会影响其由发射器驱动的能力。可能发生的情况是线路上存在争用 - 您的发射器正在发送数据,但接收器试图保持线路LOW,导致垃圾数据(与您传输的字符数相同!) 。 此外,根据here发布的示例,似乎您需要在这两种情况下定义传输启用引脚。看起来该库有一个中断服务例程,它依赖于 PTT 线来指示传输的开始。这可能会给依赖 PTT 中断来发送或接收信号的任一端带来很多问题,特别是在涉及流量控制的情况下。 最后,示例代码在发送更多数据之前使用了 vw_wait_tx() 函数调用。在尝试执行另一次 TX 操作之前,您仅等待 50 毫秒,这可能不足以让发射器完成发送其拥有的任何数据。我不知道该库的具体实现,但我肯定会使用此函数来确保您不会尝试发送超出端口可以处理的数据。

回答 1 投票 0

在LINUX上用c程序读取/dev/ttyUSB0

我想读取GPS XBee协议发送的数据帧。 USB XStick 接收以下数据: 字符:15931 句子 = 0 校验和:58 航向:55 倾斜:-46 横滚:2 字符:.......

回答 1 投票 0

使用 bash 脚本中的 plink 通过串行连接发送命令并退出

我正在 Windows 机器上编写 bash 脚本,该脚本通过串行连接进入 PetaLinux 机器,执行一些命令,并且应该退出回到 bash 脚本以继续执行逗号...

回答 1 投票 0

Arduino 未读取串行数据

我制作了一个Python脚本,通过串口将数据发送到arduino nano,然后arduino的工作是将这些数据按“,”分割,并使用fastLED将其应用到LED。 这是arduino代码: #包括 我制作了一个Python脚本,通过串口将数据发送到arduino nano,然后arduino的工作就是用','分割这些数据,并使用fastLED将其应用到LED。 这是arduino代码: #include <FastLED.h> #define NUM_LEDS 60 #define DATA_PIN 3 #define CLOCK_PIN 13 char R; char G; char B; String cut; String msg; CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS); } void loop() { msg="255255255"; String R = msg.substring(0,2); String G = msg.substring(3,5); String B = msg.substring(6,8); int RC = R.toInt(); int GC = G.toInt(); int BC = B.toInt(); leds[0] = CRGB(RC,GC,BC); FastLED.show(); delay(50); // Now turn the LED off, then pause leds[0] = CRGB::Black; FastLED.show(); delay(50); } 这是Python代码 import serial.tools.list_ports import random import time import getpixelcolor ports = serial.tools.list_ports.comports() serialInst = serial.Serial() portsList = [] for onePort in ports: portsList.append(str(onePort)) print(str(onePort)) val = 7 for x in range(0,len(portsList)): if portsList[x].startswith("COM"+str(val)): portVar = 'COM'+str(val) print(portVar) serialInst.baudrate = 9600 serialInst.port = portVar serialInst.open() while True: command = ("255255255") serialInst.write(command.encode('utf-8')) print(command) if command == 'exit': exit() time.sleep(1) 当我在arduino代码中设置msg值时,LED实际上变成白色,但是当我使用python发送相同的字符串时,它没有检测到它。 最后我想发送60个LED的颜色数据,如“255,255,255,100,100,100...”,并在arduino上接收它,使其按“,”分割数据,并将每个颜色集应用于特定的LED。你们能告诉我在哪里可以得到一些关于 arduino 等的好课程吗? 这也是在 arduino 上不起作用的代码: String receivedData = ""; // Variable to store received data int values[6]; // Array to store individual values int valueIndex = 0; // Index of the current value in the array #include <FastLED.h> #define NUM_LEDS 60 #define DATA_PIN 3 CRGB leds[NUM_LEDS]; void setup() { Serial.begin(9600); // Initialize serial communication } void loop() { if (Serial.available() > 0) { char incomingChar = Serial.read(); // Read a single character if (incomingChar != ',') { receivedData += incomingChar; // Add the character to the received data } else { // If a comma is encountered, convert the received data to a number and save it to the array values[valueIndex] = receivedData.toInt(); valueIndex++; // Move to the next index in the array receivedData = ""; // Clear the variable for the next data } // If we've reached the last character (newline), end the reading if (incomingChar == '\n') { // Reset the index and print the values valueIndex = 0; // Here you can place code that will use the values from the array } Serial.print(values[1]); // Here you can place code that will use the values from the array leds[1] = CRGB(255,255,255); FastLED.show(); } } 您的 Arduino 代码正在寻找输入末尾的换行符。当您从 Arduino 串行控制台发送时,您可能设置了行结束符,因此会自动发送。但你的Python代码不包含换行符。 试试这个: command = ("255255255\n")

回答 1 投票 0

Pi Pico W (Micropython) - 如何通过 UART 启用 CTRL+C?

我想使用 HC-05 或 HM-10 远程控制我的 Pi Pico W。它通常可以工作,但在无限循环的情况下(如“While”循环),通过 UART 发送 CTRL+C 不会停止循环。 它...

回答 1 投票 0

python中蓝牙设备名称及对应串口名称

我有一个支持蓝牙的设备,其用户友好名称为“Sensor1”。该设备使用 SPP 配置文件。为了要求设备通过蓝牙开始数据流,我必须写“10111011”o...

回答 4 投票 0

需要通过 RS232 与 KEITHLEY 4200 进行通信的示例

我一直在尝试使用 RS232 和 PyVisa 与 Keithley 4200 进行通信。我完成了我认为需要的所有模块的所有安装。但它不断发送诸如“响应超时”之类的错误,...

回答 2 投票 0

在“+++”时无法从 XBee 获得 OK 响应

从过去三天以来,我一直在尝试设置两个 XBees 进行通信。 X-CTU 似乎是这样做的完美选择,但是,当涉及到发现 XBees 时,它是一个真正的威胁......

回答 1 投票 0

将 Web 串行与 ReactJS 结合使用

我有一组随机数据位,需要使用 React 应用程序写入串行端口。当使用 vanilla javascript 实现时,脚本能够使用 Serialp 写入 esp 模块...

回答 2 投票 0

如何使用arduino uno在一个数据包传输中向xbee路由器发送多个命令

我想知道是否可以通过协调器的一个命令远程控制 xbee 上的多个 IO 引脚。 我可以轻松地将一个 IO 引脚发送为高电平或低电平,如下所示 xB.write((字节)0x7E); xB.write((通过...

回答 1 投票 0

退出与 PetaLinux 机器的 plink 串行连接

我正在编写一个 bash 脚本,该脚本进入 PetaLinux 机器,执行一些命令,并且应该退出回到 bash 脚本以继续执行命令。我无法退出回到 bash 脚本...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.