Bạn đã cân nhắc đọc từ giao diện nối tiếp trong một chuỗi riêng biệt đang chạy trước để gửi lệnh tới UC để gửi dữ liệu?
Điều này sẽ xóa một số sự chậm trễ sau lệnh ghi và bắt đầu đọc. Có other SO users đã thành công với phương pháp này, được cấp rằng họ không bị tràn bộ đệm.
Nếu điều này không rõ ràng, hãy cho tôi biết và tôi có thể ném thứ gì đó lại với nhau để hiển thị điều này.
EDIT
Suy nghĩ về nó nhiều hơn một chút, nếu bạn đang cố gắng để đọc từ bộ đệm và viết nó ra với hệ thống tập tin ngay cả những chủ đề độc lập có thể không giúp bạn tiết kiệm. Để giảm thiểu thời gian xử lý, bạn có thể cân nhắc đọc nói 100 byte tại một thời điểm serial.Read(size=100)
và đẩy dữ liệu đó vào một Queue để xử lý nó tất cả sau khi việc chuyển giao đã hoàn thành
Pseudo Mã số Ví dụ
def thread_main_loop(myserialobj, data_queue):
data_queue.put_no_wait(myserialobj.Read(size=100))
def process_queue_when_done(data_queue):
while(1):
if len(data_queue) > 0:
poped_data = data_queue.get_no_wait()
# Process the data as needed
else:
break;
Nguồn
2012-04-12 16:59:06
Bạn có thể giảm tốc độ truyền xuống không? –
Không, thật không may là tôi không có quyền kiểm soát uC baudrate. Tất cả những gì tôi có thể làm là gửi byte truyền và nhận dữ liệu. – Nate