Считайте данные с последовательного порта

Используйте нестандартное имя и идентификатор для полей, таким образом, а не "имя" имеют "имя _". Браузеры не будут тогда видеть его как являющийся полем имени. Большая часть об этом - то, что можно сделать это некоторым, но не всем полям, и это автоматически заполнит некоторых, но не все поля.

5
задан skaffman 29 July 2009 в 20:51
поделиться

5 ответов

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

Звучит просто, но в списке рассылки MSP-430 вопросы программирования USART являются наиболее частой отдельной темой.

2
ответ дан 13 December 2019 в 19:32
поделиться

Много полезной информации о работе с последовательными портами как на ПК, так и на стороне устройства можно найти на сайте Яна Аксельсона в книге Serial Port Complete .

Фактическое взаимодействие с портом будет сильно зависеть от платформы. В * nix большинства вариантов вы открываете устройство с именем вроде / dev / ttya и используете read () , write () и ioctl. () для чтения, записи и настройки порта.

В Windows вы открываете файл с именем COM1 (или \\. \ COM1 в некоторых вариантах) с функцией CreateFile () , а затем настройте его и доведите до конца с помощью таких функций, как SetCommState () и структура DCB . Детали в общих чертах аналогичны тем, что вам нужно делать в * nix, но организованы совершенно иначе. Вы можете найти полное обсуждение настройки и использования COM-портов в MSDN .

На встроенном устройстве вы будете либо напрямую обращаться к аппаратным регистрам UART , либо взаимодействовать с ОСРВ. В любом случае, по сути, нет способа сделать код на конце устройства широко переносимым.

6
ответ дан 13 December 2019 в 19:32
поделиться

Прежде всего, это очень зависит от используемой вами ОС.

Для типа * nix вы обычно открываете устройство последовательного порта как обычный файл (например, / dev / ttyS0) и запускаете чтение или запись от него. Что касается Windows, я могу посоветовать вам поискать надежную библиотеку, потому что последовательная связь Windows может быть настоящим кошмаром. Более того, могут быть некоторые различия между старыми версиями Windows и никогда.

Лично я использую wxCTB, поскольку я пользователь wxWidgets. Вам следует поискать библиотеку, которая подойдет IDE, которую вы используете.

некоторые бесплатные ссылки;) www.robbayer.com/files/serial-win.pdf www.lookrs232.com/com_port_programming/

2
ответ дан 13 December 2019 в 19:32
поделиться

В мире Windows вам лучше найти библиотеку, которая делает все волшебство.

Лично я использую Borland C ++, чтобы собрать небольшую утилиту для взаимодействия с моим оборудованием (загрузчики, конфигурации и тестирования), и я очень доволен TurboPower Async Professional Library , которая работает как в Delphi, так и в BCC и имеет открытый исходный код (Mozilla Public License 1.1).

0
ответ дан 13 December 2019 в 19:32
поделиться

Чтобы расширить ответ Яна, типичный встроенный компилятор c будет иметь директиву компилятора или оператор, параметры которого управляют настройками, такими как скорость передачи, и который связывает UART (или другое оборудование ввода-вывода ) с потоком. Вы можете указать имя потока (если у вас более одного последовательного порта) или использовать значения по умолчанию. Затем вы можете получить доступ к последовательному порту с помощью обычных процедур для символов c, и при получении каждого символа будет прерывание. Итак, ваша процедура прерывания считывает каждый символ и помещает его в буфер.

1
ответ дан 13 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

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