Эффективный и быстрый цикл Python While при использовании sleep ()
==================================================================

Я пытаюсь связаться с устройством через последовательный порт, используя Pyserial. Поскольку команды должны непрерывно отправляться, они должны быть помещены в цикл while в Python.

Я в настоящее время использую этот код, и посмотрел на[Процесс Python занимает 100% процессора](https://stackoverflow.com/questions/9349588/python-process-takes-100-cpu):

Этот код работает. Однако скорость отправки низкая. Я пытался сделать это быстрее, уменьшив`sleep` интервал, но, кажется, загружает процессор слишком много.

Короче говоря, есть ли способ эффективно выполнять итерации по циклу while навсегда, сохраняя при этом низкое потребление ресурсов процессора?

». Цикл while с коротким сном будет использовать незначительный процессор.

Можете ли вы показать серийный код отправки. Там может быть способ ускорить это.

На этом довольно медленном процессоре я вижу это:

Теперь проделайте дополнительную работу в цикле:

Я запустил их в интерпретаторе и остановил каждый цикл while с помощью ctrl-C.



 какой компромисс вы готовы иметь между скоростью и нагрузкой на процессор.

Если вам приходится отправлять короткие пакеты данных, хотя между сообщениями не нужно делать слишком много, то, возможно, вы сможете в течение короткого времени жить с высокой нагрузкой на ЦП, поскольку среднее значение все еще может быть низким.



Тогда ваш код микроконтроллера нуждается в редизайне. В противном случае вы просто превращаете свой компьютер общего назначения в не более чем тупой «микроконтроллер». это повторяет ненужный код несколько раз, следовательно, 100% процессора. Другим признаком неправильного использования компьютера является тот факт, что скорость вашего аппаратного двигателя зависит от скорости, с которой вы посылаете ему команды через последовательный интерфейс. Вам нужно «командовать» это с компьютером, на котором будет размещена ваша логика высокого уровня. И ваш микроконтроллер должен поддерживать повторяющееся управление двигателем на низком уровне.