roboforum.ru

Технический форум по робототехнике.

Com порт, Си и Windows

Com порт, Си и Windows

esprit » 20 июн 2012, 16:58

Не могу сообразить как работать с Com портом в Windows на Си. Подскажите (лучше примером)? На Linux DIR-320 сделал. Язык Си, не С++ и т.д.

Re: Com порт, Си и Windows

Angel71 » 20 июн 2012, 18:06

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

Re: Com порт, Си и Windows

noonv » 20 июн 2012, 23:39

очень просто - как с файлом :D
а вообще - вы явно недооцениваете силу гугла или яндекса ;)
COM-порт в Windows (программирование)

Re: Com порт, Си и Windows

Kitam1n » 21 июн 2012, 13:19

Могу на C# исходник дать, с COM там все очень просто.

Re: Com порт, Си и Windows

Angel71 » 21 июн 2012, 13:23

на си тоже всё просто

Re: Com порт, Си и Windows

esprit » 21 июн 2012, 19:50

Робофорум последняя инстанция, не надо закидывать меня гуглами.
Хочу научиться управлять сервой с ноутбука.
Ноутбук <-> USB <-> OR-USB-UART <-> RoboBus <-> OR-AVR-M128-DS <-> Серва.
Отправлять команды в OR-AVR-M128-DS типа #3 P1700 T4000, получать ответ выполнено или нет
Понимаю, что просто.
#include <windows.h>
hSerial = CreateFile("COM1" и тд.
Сто миллионов примеров...
Нет в C:\MinGW вхождения строки CreateFile в windows.h...
Есть только в winbase.h...

Прошу рабочий код на Си.

Re: Com порт, Си и Windows

elmot » 21 июн 2012, 20:24

Очень хочется на С это делать?

Re: Com порт, Си и Windows

esprit » 22 июн 2012, 02:00

Не критично. Просто Eclips под Си настроил и OpenCV там же завелась. Dir320 под Си настроен.

Re: Com порт, Си и Windows

Angel71 » 22 июн 2012, 08:31

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

Re: Com порт, Си и Windows

boez » 22 июн 2012, 11:08

esprit писал(а):#include <windows.h>
hSerial = CreateFile("COM1" и тд.
Сто миллионов примеров...
Нет в C:\MinGW вхождения строки CreateFile в windows.h...
Есть только в winbase.h...

Прошу рабочий код на Си.

Дык елки, windows.h это в mingw просто верхний уровень, а в нем где-то, может через другие инклуды, включен winbase.h. Раз уж полез смотреть - ищи, какими дефайнами определяется там включение, чутье мне подсказывает что у тебя именно дефайна какого-то не хватает.

Приаттачил 100% рабочий класс на основе wxThread, компилится CodeBlocks + MinGW, дефайны в проекте вот такие:
__GNUWIN32__
__WXMSW__
wxUSE_UNICODE

Там написан вызов CreateFileA, потому как проект юникодный (вот если честно, не вижу где определяется юникодность WinAPI, возможно как следствие wxUSE_UNICODE - но простой CreateFile превращается в CreateFileW, а это не то, что мне нужно). Но саму функцию CreateFile ессно тоже находит. Можешь просто выдрать код инициализации из метода OpenPort ну и примеры вызова ReadFile/WriteFile, там чисто сишный код.
Вложения
uartcom.h
(665 байт) Скачиваний: 354
uartcom.cpp
(2.66 КиБ) Скачиваний: 379


Rambler\'s Top100 Mail.ru counter