Раздел №3 содержит подпись ext4

Похоже, вы немного не понимаете, как все это работает.

Во-первых, /dev/ttyACM0не представляет канал USB или даже конечную точку USB для любого подключенного последовательного адаптера, он представляет собой UART внутри адаптера, который обрабатывает последовательную связь. Данные, которые вы читаете из него, не будут включать заголовки или кадры USB, точно так же, как данные, которые вы читаете из /dev/ttyS0, не будут включать заголовки или кадры PCI Express. Установка скорости передачи для них влияет на аппаратное обеспечение, которое они представляют, а не на шину, к которой они подключены, поэтому это ничего не сделает с USB-соединением.

Во-вторых, скорость передачи данных является аппаратной, а не программной настройкой. Когда вы вызываете stty, чтобы установить его на последовательный порт, это говорит ядру сообщить аппаратному обеспечению изменить скорость передачи данных, с которой оно пытается получить данные. Это означает, в частности, что любые данные, которые были получены до этого изменения, будут либо поддельными (, поскольку они не были правильно интерпретированы аппаратным обеспечением, иногда в случае, если скорости передачи близки друг к другу или точные гармоники )., либо совсем пропало (потому что железо его просто не восприняло, более вероятный случай на современном железе ).

Если вы планируете считывать данные с последовательной линии, вам необходимо правильно установить скорость передачи данных до того, как какие-либо данные будут переданы другим концом. Это также означает, что изменение скорости передачи данных не изменит то, как ядро ​​интерпретирует данные.Если данные уже буферизованы в ядре, то они не изменятся только потому, что вы изменили скорость передачи данных (, хотя хорошей практикой является после изменения скорости передачи данных опустошение буферов ядра, чтобы вы знали, что любые будущие данные будут хорошими. ).

Итак, чтобы уточнить, правильный способ получить данные из адаптера USB-последовательный порт без использования специального программного обеспечения:

  1. Установите скорость передачи данных при запуске системы. Для адаптера USB-последовательный порт это, вероятно, должно быть правилом udev, чтобы оно устанавливалось и при подключении устройства.
  2. Используйтеcat(или od, если вам нужны байтовые значения вместо текста )для чтения данных. Это вернет точные данные, полученные адаптером USB для последовательного порта (, при условии, что адаптер не выполняет специальную обработку ).
1
30.06.2019, 13:48
0 ответов

Теги

Похожие вопросы