Pycharm Kivy串口读取
Pycharm Kivy Serial Port Read
我将创建一个非常简单的 Kivy 应用程序来读取串行端口并将其显示在标签中,在 Python 控制台中我可以看到串行数据但在 Pycharm 和 Kivy 中结果错了。
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
import serial
class LoginScreen(GridLayout):
def __init__(self, **kwargs):
ser = serial.Serial('COM3', 9600, timeout=0)
ser.read()
super(LoginScreen, self).__init__(**kwargs)
self.cols = 2
self.rows = 2
self.add_widget(Label(text=str(ser)))
class MyApp(App):
def build(self):
return LoginScreen()
if __name__ == '__main__':
MyApp().run()
您正在将串行对象传递给 str
。这就是它如此显示的原因——串行对象的字符串表示。
self.add_widget(Label(text=str(ser)))
您应该先阅读连载:
data = ser.read()
现在您可以处理这些数据或将其转换为字符串并在 Kivy 上显示。
self.add_widget(Label(text=str(data)))
我将创建一个非常简单的 Kivy 应用程序来读取串行端口并将其显示在标签中,在 Python 控制台中我可以看到串行数据但在 Pycharm 和 Kivy 中结果错了。
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
import serial
class LoginScreen(GridLayout):
def __init__(self, **kwargs):
ser = serial.Serial('COM3', 9600, timeout=0)
ser.read()
super(LoginScreen, self).__init__(**kwargs)
self.cols = 2
self.rows = 2
self.add_widget(Label(text=str(ser)))
class MyApp(App):
def build(self):
return LoginScreen()
if __name__ == '__main__':
MyApp().run()
您正在将串行对象传递给 str
。这就是它如此显示的原因——串行对象的字符串表示。
self.add_widget(Label(text=str(ser)))
您应该先阅读连载:
data = ser.read()
现在您可以处理这些数据或将其转换为字符串并在 Kivy 上显示。
self.add_widget(Label(text=str(data)))