Как считывать данные из последовательного порта с помощью C? а затем снова передать данные модему? Я использую кабель RS 232 для последовательной связи ...Чтение данных с последовательного порта
ответ
Прежде всего, это очень зависит от используемой вами ОС.
Для типа * nix вы обычно открываете устройство последовательного порта, например, обычный файл (/ dev/ttyS0), и начинаете читать или записывать его. Что касается окон, я могу посоветовать вам искать надежную библиотеку, потому что окна серийной связи могут стать настоящим кошмаром. Более того, могут существовать некоторые различия между старыми версиями окон и никогда.
Лично, потому что я wxWidgets пользователь, я использую wxCTB. Вы должны искать библиотеку, которая подходит для IDE, которую вы используете.
некоторые бесплатные ссылки;) www.robbayer.com/files/serial-win.pdf www.lookrs232.com/com_port_programming/
Не применимо для встроенных (помечено «встроено»). –
Неправда. Встроенный * обычно * означает Linux или WinCE. –
много полезной информации о работе с последовательными портами как на ПК и на конце устройства провода можно найти на сайте Яна Аксельсона для книги Serial Port Complete.
Фактическое взаимодействие с портом будет очень специфичным для платформы. На * nix большинства вкусов вы открываете устройство с именем примерно /dev/ttya
и используете read()
, write()
и ioctl()
для чтения, записи и настройки порта.
В Windows, вы открываете файл с именем COM1
(или \\.\COM1
на некоторых ароматизаторах) с функцией CreateFile()
, а затем получить его настроен и счастлив с функциями, как SetCommState()
и DCB
структуры. Детали схожи в общих чертах с тем, что вам нужно делать на * nix, но организованы совершенно по-другому. Вы можете найти полное обсуждение конфигурации и использования COM-портов по адресу MSDN.
На встроенном устройстве вы будете либо напрямую обращаться к аппаратным регистрам UART, либо взаимодействовать с RTOS. В любом случае, по существу, нет способа сделать код на устройстве более широко переносимым.
На территории Windows вы можете найти библиотеку, которая делает все волшебство.
Лично я использую Borland C++ для компоновки небольшой утилиты, чтобы говорить с моим оборудованием (загрузчики, конфигурация и тестирование), и я очень доволен TurboPower Async Professional Library, который работает как в Delphi, так и в BCC и является открытым исходным кодом (Mozilla Public License 1.1).
Во встроенном мире ваш компилятор будет иметь некоторый механизм (как правило, специфичный для компилятора), который позволяет ему обращаться к аппаратным регистрам, которые используются для реализации функции последовательного порта либо внутри устройства, либо во внешней памяти или IO-сопоставленном устройстве. Эти определения регистров часто предоставляются производителем инструмента или процессора, и тогда это всего лишь случай записи значений управления конфигурацией в регистры последовательного порта, чтобы установить его рабочий режим, а затем считывать данные из регистра регистра приема tje.
Звучит просто, но в списке рассылки MSP-430 Задачами программирования USART являются наиболее распространенные темы.
Чтобы расширить ответ на вопрос Яна, типичный встроенный компилятор c будет иметь директиву компилятора или инструкцию, параметры которой управляют параметрами, такими как скорость передачи данных, и которая связывает UART (или другое оборудование ввода-вывода) с потоком. Вы можете указать имя потока (если у вас более одного последовательного порта) или использовать значения по умолчанию. Затем вы можете получить доступ к последовательному порту с обычными процедурами c-символа, и при получении каждого символа будет прерывание. Таким образом, ваша процедура прерывания считывает каждый символ и помещает его в буфер.
- 1. чтение с последовательного порта
- 2. Чтение данных из последовательного порта
- 3. Чтение последовательного порта
- 4. Чтение последовательного порта быстрее
- 5. Чтение последовательного порта
- 6. чтение из последовательного порта
- 7. Блокировка последовательного порта Чтение
- 8. Чтение последовательного порта с pymodbus3
- 9. Чтение с последовательного порта linux
- 10. Чтение двоичных данных из последовательного порта
- 11. Java Чтение данных из последовательного порта
- 12. Чтение данных последовательного порта из веб-приложения
- 13. Чтение данных из последовательного порта в java
- 14. .NET: Чтение данных из последовательного порта
- 15. Java/Arduino - Чтение данных из последовательного порта
- 16. открытие последовательного порта и чтение строки данных
- 17. Чтение данных последовательного порта Modbus в C#
- 18. Чтение данных из последовательного порта C#
- 19. Чтение байтов из последовательного порта
- 20. Чтение последовательного порта в Perl
- 21. Чтение последовательного порта в Rebol3
- 22. Чтение байтов из последовательного порта
- 23. Чтение последовательного порта в Java
- 24. Чтение из последовательного порта с Boost Asio
- 25. Чтение последовательного порта с кодом JS
- 26. Чтение с последовательного порта в Windows
- 27. Чтение файла с последовательного порта в Java
- 28. Чтение последовательного порта с PHP-странностью
- 29. Python: Запись и чтение с последовательного порта
- 30. Чтение данных с последовательного порта USB с помощью android
Какая операционная система? –
Какое оборудование/платформа? – DaveR
Вам обязательно нужно добавить дополнительную информацию по этому вопросу. – Johan