为了创建一对串行端口,我跟踪了。效果很好。
现在,我正在开发一个Qt应用程序(使用)通过串口发送数据,我真正想要的是这样一个虚拟串口链接。但是QSerialPortInfo::availablePorts()似乎找不到/dev/ it /.港口。
为了在linux上建立这样的串口链接,我应该尝试哪种方法?
我的工作是机器人,它必须控制使用无线串行通信。机器人在微控制器上运行(通过燃烧一个.hex文件)。我想用我的Linux () PC来控制它。我是新来的串口编程。我能够发送数据,但我不能读取数据。
在微控制器上运行的几段代码:
函数发送数据:
void TxData(unsigned char tx_data)
{
SBUF = tx_data; // Transmit data that is passed to this function
while(TI == 0) // Wait while data is being transmitted
;
}
这是我的C程序(在Linux中)的相关部分:
while (input != ' '){
write(serial_port, msg, sizeof(msg));
//1. here I would like to wait at least 100 us with the Tx line high
//2. followed by at least 8us with the Tx line low
//3. and then repeat the message
input = mygetch();
}
如您所见,每次通过串口发送msg后,我希望将Tx行设置为10
过去,我曾在Linux和Windows环境中使用c++和python与串口通信。在Linux中,我还使用picocom、minicom和cutecom等程序进行串行通信,但现在我想使用简单的Linux命令读写串口,这不需要安装外部程序。我会在raspberry pi中使用这种方法与我的Arduino板进行通信。在下面的示例中,我使用stty设置串口选项,并使用echo和cat命令从串口发送和读取数据,但在最后,我没有看到任何输出,我在这个站点上阅读了与此相关的其他文章,但似乎没有什么对我有用。我可以使用cutecom与Arduino进行通信,但是使用下面的命令,我看不到任何响应。
Linux
目前,我正在使用Linux文件描述符通过串口与外部设备通信,我想知道是否有可能复制返回的结果。
详细地说,我使用文件描述符5来读写raspbian设备中的串行端口/dev/ttyACM0。
exec 5<>"/dev/ttyACM0"
在后台,每当有响应决定下一步时,我就运行一个函数从端口连续读取。
function __processing__(){
local line
while read line<&5; do
... some processing ...
... echo $line > "
我正在尝试使用ORSSerialPort向串口发送数据和从串口接收数据。
我遵循这里的示例,但我使用的是命令行应用程序:
我相信我复制/实现了所有需要的方法,但问题是,尽管我可以将数据发送到我的串口(我从串口日志中双重确认,发送成功),但我无法接收任何东西。
我的代码非常简单,如下所示-它只是一个原型,所以代码可能设计得不是很好。
那么,我是否遗漏了任何无法从串行端口接收数据的内容?如有任何建议,欢迎光临。
import ORSSerial
class SerialController : NSObject, ORSSerialPortDelegate {
var port
我使用的收银机是裸露的RedHat Linux机箱。这些寄存器有一个扫描器连接到一个串口(ttyS0)。
我们做了很多测试,要求有人站在注册和刷产品的扫描仪。我正在想办法把这个人从方程中移开。
是否有一种简单的方法来模拟来自串口的输入?
显然,向串口发送信息很容易:
echo [whatever] > /dev/ttyS0
但我真正喜欢的是某种bash代码,我可以在其中输入:
echo [barcode number] > (some code that makes the machine think the barcode number is coming from the se
我有一个带有数字5:240的字符串。由此,我必须通过它们的十六进制表示从字符串中发送数字。该数字必须在两个字节的范围内。但是,我想在我的串口上发送准确的表示,比如'\x00\x05\x00\xf0'。有人能帮我吗?
我试过以下片段,但没有成功:
b='5:240'
b = b.split(':')
for i in range(len(b)):
print hex(int(b[i]))
print len(hex(int(b[i])))
结果:
0x5
3
0xf0
4
输出显示十六进制转换,但我不可能将它发送到串口,因为长度是可
我正在尝试将usb转串口驱动程序添加到我的arch linux arm设备中,并且我注意到内核源代码树中已经包含了FTDI驱动程序的源文件,位于:
驱动程序/usb/串口,存在ftdi_sio.c和ftdi_sio.h文件。
当我导航到内核/驱动程序时,到处都找不到ftdi_sio.ko模块。
如何构建ftdi内核模块并将其包含到引导中,以便在我的arch linux arm上具有usb转串口功能?