Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 将字符串发送到串行_String_Serial Port_Communication - Fatal编程技术网

String 将字符串发送到串行

String 将字符串发送到串行,string,serial-port,communication,String,Serial Port,Communication,布翁吉奥诺, 我正试图向串行端口发送一个简单的字符串,以命令仪器进行噪声测量。 字符串非常简单: “M 1”=仪表开启 “M 2”=仪器关闭 “M 3”=开始测量 “M 4”=停止测量 我发现这个程序: import serial ser = serial.Serial(0) #Seleziona la porta seriale COM4 ser.baudrate = 9600 #Imposta il baudrate a 9600bps ser.open() #apre la port

布翁吉奥诺, 我正试图向串行端口发送一个简单的字符串,以命令仪器进行噪声测量。
字符串非常简单:
“M 1”=仪表开启
“M 2”=仪器关闭
“M 3”=开始测量
“M 4”=停止测量

我发现这个程序:

import serial

ser = serial.Serial(0)  #Seleziona la porta seriale COM4
ser.baudrate = 9600 #Imposta il baudrate a 9600bps

ser.open() #apre la porta com
ser.close() 
#verifica se la porta e' aperta
if ser.isOpen():
   com_num = ser.portstr
   print ("Porta " + com_num + " aperta")
   #invia il comando alla seriale
   buffer = "M 3"
   ser.write(buffer)     
   #Loop d'attesa caratteri
   num = 0
   while num == 0:
       num = ser.inWaiting()
   #scarica il buffer della seriale
   buffer = ser.read(num)
   print ("Dati ricevuti dalla seriale:")
   print buffer
   ser.close()             #chiude la porta
else:
   print ("Porta seriale gia' in uso o inesistente") 
s = raw_input("digita INVIA per uscire")
使用LINUX
该程序是好的,我只有一些字符串类型的问题。事实上,我必须插入一个回车,但我不能这样做
我说程序没问题,因为当我第一次连接时,仪器从关闭转为打开,在视频中我读到“Porta/dev/ttyS=aperta”,意思是“打开”。但这适用于我发送的任何类型的字符串。事实上,这就像是端口的“本地化”,而不是真正的通信。
然后我没有以正确的方式发送字符串,可能是因为回车的问题

使用WINDOWS
我无法打开端口,我有一个拒绝访问端口的错误,这是错误:

回溯(最近一次呼叫最后一次):
文件“C:/d.py”,第9行,在
ser.open()#一家门户网站
文件“C:\Programmi\Python26\lib\site packages\serial\serialwin32.py”,第53行,处于打开状态 引发SerialException(“无法打开端口%s:%s”%(self.portstr,ctypes.WinError())) serial.serialutil.SerialException:无法打开端口COM1:[错误5]访问否定。

你能帮我:
1.设法在windows下运行程序
2.设法准确地给出带回车符的字符串???

非常感谢你。

Stefano

要添加回车符,只需将
\r
附加到字符串中,或者可能需要回车符/linefeed
\r\n
,某些系统使用它来标记行尾。当然,它可能只需要换行。在这种情况下,您只需使用
\n

buffer = "M 3\r"


您可能会找到解决Windows问题的帮助文档。

不幸的是,它不起作用。
在过去,我已经尝试通过bash在linux中使用\r\n echo命令。。。但是什么都没有。
现在我正在尝试使用python,但又一无所获。有趣的是,当我以这种方式给出字符串时,乐器:

buffer=“m3\r”


buffer=“M 3\r\n”

我的答案是:
@

就这些…
我不知道。
另一件事:当我尝试使用bash语言时,仪器以命令开始测量:
echo“m3”>/dev/ttyS0

这是在3点之后用漂白剂处理的。
显然,另一个命令不适用于这个奇怪的Black…

多谢各位

buffer = "M 3\r\n"
buffer = "M 3\n"