【发布时间】:2019-01-17 06:21:33
【问题描述】:
问题是我正在尝试使用“我制作”的 ruby 脚本连接到串行端口 9600 以发送数据,以便 Arduino 可以读取它。
我想将数据发送到串行端口(9600),我必须连接到该端口才能做到这一点。我正在尝试将其连接到/dev/ttyS6。
这是我的红宝石代码:
#simplest ruby program to read from arduino serial,
#using the SerialPort gem
#(http://rubygems.org/gems/serialport)
require "serialport"
#params for serial port
port_str = "/dev/ttyS6" #may be different for you
baud_rate = 9600
data_bits = 8
stop_bits = 1
parity = SerialPort::NONE
sp = SerialPort.new(port_str, baud_rate, data_bits, stop_bits, parity)
#just read forever
while true
i = gets.chomp!.to_i
puts sp.putc(i)
end
#puts i.class #String
sp.close #see note 1
我的 ruby 程序在 ubuntu bash for windows 上运行。此消息显示在控制台中:
serialport-1.3.1/lib/serialport.rb:25:in `create': Permission denied - /dev/ttyS6 (Errno::EACCES)
我已经尝试过这些解决方案:
chown -R myUserName ./*sudo chown -R user_name file_namechmod a+w <folder>
我怎样才能允许连接?
【问题讨论】:
-
你是怎么确定
/dev/ttyS6是串口的? -
"在 WSL 中,lxcore 驱动程序通过 COM 端口号将 COM 端口映射到 Linux 设备,因此 /dev/ttyS
绑定到 COM 。更具体地说,映射位于次要编号,因此次要编号 65 (/dev/ttyS1) 是 COM1,66 (/dev/ttyS2) 是 COM2,依此类推。”blogs.msdn.microsoft.com/wsl/2017/04/14/… 说,所以 /dev/ttyS6将是 COM6。 -
为什么我的问题得到了-2票,不是生气,只是想得到反馈,这样我才能提出更好的问题
-
添加了几个 updoots :)
标签: ruby windows ubuntu arduino windows-subsystem-for-linux