Python2.5.4とWindows7を使用しています。
pygameを使ってマイクロコントローラーと情報を送受信するプログラムを作ろうとしています。このコードは、マイクロコントローラーがpygameにデータを書き込むだけで正常に機能しますが、情報を受け取るマイクロコントローラーコード(readline)に行が含まれていると、pygameウィンドウがフリーズします(ウィンドウを閉じるだけでなく、問題が何であるかを確認できます) )。マイクロコントローラーとpygame/pyserialがお互いに話したり聞いたりした経験がある人はいないでしょうか?
私は潜在的に類似した投稿を読みましたが、コードを理解しておらず、同じ問題であるかどうかもわかりませんでした。私はこれらのフォーラムで「フロー制御」という用語を読みましたが、これが私の問題であるかどうか疑問に思っていますか?
私のコードは次のとおりです。
import os, pygame, math, serial
from pygame.locals import *
from pygame.compat import geterror
from time import clock, time
pygame.init()
w = 1100 #sets pygame screen width
h = 642 #sets pygame screen height
screen = pygame.display.set_mode((w, h),0,32) #make and display screen
pygame.display.flip() #Update screen
running = 1
font = pygame.font.Font(None, 36)
clock = pygame.time.Clock()
port = serial.Serial("COM2", 115200)
while running: #Loop this
for event in pygame.event.get(): #get user input
if event.type == pygame.QUIT: #if user clicks the close X
running = 0 #make running 0 to break out of loop
temp = float(port.readline())
clock.tick(100)
value = font.render(str(temp), 1, (100, 100, 100))
screen.blit(value, (280,165))
pygame.display.flip() #Update screen
port.write('3')