我正在从串口读取由arduino发送的数据。
我有两个文件,我分别使用它们来编写一些代码并尝试不同的事情。在其中之一中,我读取数据并使用 matplotlib 图形绘制它。当我使用完它后,它仍然与我的计算机保持连接并发送数据。所以,我需要做的是“重置”端口。也就是说,关闭打开的端口并再次打开它,并阻止它发送数据,这样我就可以使用arduino尝试对此文件的代码进行一些修改。
因此,为了完成此任务,我的意思是,要重置端口,我创建了另一个文件并编写了以下代码:
import serial
print "Opening port"
try:
serial_port = serial.Serial("com4", 9600)
print "Port is open"
except serial.SerialException:
serial.Serial("com4", 9600).close()
print "Port is closed"
serial_port = serial.Serial("com4",9600)
print "Port is open again"
print "Ready to use"
Run Code Online (Sandbox Code Playgroud)
但这段代码似乎不起作用。端口仍然连接并发送数据。所以,这意味着我无法使用我的代码关闭端口,然后再次重新打开它。
我究竟做错了什么?如何阻止arduino发送数据?或者我怎样才能重置Arduino?
希望你能帮我。
我成功地找出了我遇到的真正问题,但这不是我想象的那样。问题不在于端口是开放的,尽管我使用了closePyserial 的功能。真正的事情是,端口正在按照我的意愿关闭,但设备(arduino)仍在发送数据。因此,我更改了代码来重现这种情况。
这是代码:
print "Abriendo puerto"
ser = serial
try:
ser = serial.Serial("com4", 9600, timeout = 1)
serial_port = "Open"
print "The port %s is available" %ser
except serial.serialutil.SerialException: …Run Code Online (Sandbox Code Playgroud) 我在一个使用 PyQt4 和 Matplotlib 库的项目中工作。我创建了一个 matplotlib 图并添加了一个工具栏。
有没有办法禁用其中显示的坐标?我的意思是这些:
我想这样做,因为我要在工具栏中添加一些按钮,我需要这个空间。
这是 matplotlib 图的代码:
class Figure(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.linedit = SelectData(self)
self.mainWidget = QWidget()
self.setCentralWidget(self.mainWidget)
layout = QVBoxLayout()
self.mainWidget.setLayout(layout)
self.figure_canvas = FigureCanvas(Figure())
layout.addWidget(self.figure_canvas, 10)
self.axes = self.figure_canvas.figure.add_subplot(211)
self.axes.grid(False)
#I added this toolbar
self.navigation_toolbar = NavigationToolbar2(self.figure_canvas, self)
self.addToolBar(Qt.TopToolBarArea, self.navigation_toolbar)
Run Code Online (Sandbox Code Playgroud)
我是python的新手,所以我希望你能帮助我。谢谢您的回答。