roboforum.ru

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

Com порт, Си и Windows

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

Com порт, Си и Windows

Сообщение esprit » 20 июн 2012, 16:58

Не могу сообразить как работать с Com портом в Windows на Си. Подскажите (лучше примером)? На Linux DIR-320 сделал. Язык Си, не С++ и т.д.
Орфография и стилистика автора сохранены.
esprit
 
Сообщения: 70
Зарегистрирован: 06 июн 2008, 05:26
Откуда: Уссурийск

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

Сообщение Angel71 » 20 июн 2012, 18:06

ищите доку и примеры к своей среде разработки или компилятору, с такой лаконичной постановкой вопроса можно только гадать, какой пример вам подойдёт.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

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

Сообщение noonv » 20 июн 2012, 23:39

очень просто - как с файлом :D
а вообще - вы явно недооцениваете силу гугла или яндекса ;)
COM-порт в Windows (программирование)
Аватара пользователя
noonv
 
Сообщения: 601
Зарегистрирован: 21 май 2007, 22:57
Откуда: Калининград
прог. языки: C++

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

Сообщение Kitam1n » 21 июн 2012, 13:19

Могу на C# исходник дать, с COM там все очень просто.
Лучше переесть, чем недоспать.
Аватара пользователя
Kitam1n
 
Сообщения: 343
Зарегистрирован: 30 мар 2012, 16:39
Откуда: Москва
прог. языки: C#, Си, php
ФИО: Влад

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

Сообщение Angel71 » 21 июн 2012, 13:23

на си тоже всё просто
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

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...

Прошу рабочий код на Си.
Орфография и стилистика автора сохранены.
esprit
 
Сообщения: 70
Зарегистрирован: 06 июн 2008, 05:26
Откуда: Уссурийск

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

Сообщение elmot » 21 июн 2012, 20:24

Очень хочется на С это делать?
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

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

Сообщение esprit » 22 июн 2012, 02:00

Не критично. Просто Eclips под Си настроил и OpenCV там же завелась. Dir320 под Си настроен.
Орфография и стилистика автора сохранены.
esprit
 
Сообщения: 70
Зарегистрирован: 06 июн 2008, 05:26
Откуда: Уссурийск

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

Сообщение Angel71 » 22 июн 2012, 08:31

в общем случае примеры с createfile рабочие, чего у вас не получается хз. может вам нужно дополнительно что-то заинклудить, например stdio или еще с чем пошаманить.
попробуйте этот или этот пример, по крайней мере он должен без проблем откомпилироваться.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

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 байт) Скачиваний: 304
uartcom.cpp
(2.66 КиБ) Скачиваний: 331
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++


Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15