Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2009, 00:30   #1
luocky
Новичок
Джуниор
 
Регистрация: 12.11.2009
Сообщений: 6
По умолчанию Как инициализировать СОМ порт?

Помогите пожалуйста с инициалицей СОМ порта.
Система такова: через СОМ порт комп связывается с устройством через FTDI микросхемку. В принципе передача идёт, однако етсь НО
при ребуте компа или девайса передача по СОМ рассинхронизируется и передаёт какую-то муть. Чтобы всё встало на место приходится включать, выключать терминалку идальше работа идёт нормально.
P.S: Ребут компа или девайса произвожу не во время передачи.
Вот код:
Код:
procedure Write_Port(data_char:string;bit_out:byte);
var
com:THandle;
dcb :tdcb;
N:cardinal;
i:byte;
data:array[0..30] of char;
begin
  for i:=0 to (bit_out-1) do
   data[i]:=data_char[i+1];
 com:=createfile('com6',generic_read+generic_write,0,nil,open_existing,0,0);
 //PurgeComm(com,PURGE_TXCLEAR or PURGE_RXCLEAR);
  if getcommstate(com,dcb) then
   begin
    dcb.baudrate := cbr_57600;
    dcb.bytesize := 8;
    dcb.parity := 0;
    dcb.StopBits:=1;
    setcommstate(com,dcb);
    //sleep(100);
    writefile(com,data,bit_out,N,nil);
   end
  else
   Application.MessageBox(Pchar('Закройте всe приожения, работающие с СОМ'),'Подсказка',MB_OK);
 CloseHandle(com);
Оформляйте код, как положено.
В правилах написано, как это делается.

Последний раз редактировалось mihali4; 13.11.2009 в 01:24.
luocky вне форума Ответить с цитированием
Старый 13.11.2009, 01:18   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

дрова для работы с FTDI контроллером установлены в системе? вы используете D2X?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 13.11.2009, 02:22   #3
luocky
Новичок
Джуниор
 
Регистрация: 12.11.2009
Сообщений: 6
По умолчанию

дрова стоят. Что такое D2X? Гуглил - не нашёл...
luocky вне форума Ответить с цитированием
Старый 13.11.2009, 08:45   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
D2X
Direct X кажись...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.11.2009, 09:15   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

так, курим мануалы по использованию FTDI контроллеров через USB в delphi (свободно распространяемые)... с ftdi работают через (драйвер D2X) виртуальный com-порт

зы: в комплекте- мануал, драйвер, хэдер для использования, тестовый пример
(мысли вслух: "...надо форсировать статью по работе с usb")

UPD
======================

Цитата:
при ребуте компа или девайса передача по СОМ рассинхронизируется и передаёт какую-то муть. Чтобы всё встало на место приходится включать, выключать терминалку идальше работа идёт нормально.
теперь по вопросу... это вполне "законная" реакция контроллера, откуда ему знать что вы его ребутите? самое простое - это проверка обрыва связи... если вы используете стандартный windows-й терминал такого не добъетесь, если свою программу - то добавляйте такую проверку. Кроме того неплохо-бы поставить что-то типа сторожевого таймера на саму FTDI-у в девайсе (как понимаю ftdi в девайсе все равно используется совместно с еще одним мироконтроллером? если нет, то опишите подробней состав вашего девайса)
Вложения
Тип файла: zip usb.ftdi.zip (302.2 Кб, 70 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 13.11.2009 в 09:40.
raxp вне форума Ответить с цитированием
Старый 13.11.2009, 10:04   #6
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Закинука я сюда ссыль http://easyelectronics.ru/preobrazov...i-ft232rl.html, это про аппаратный уровень, может кому-то нужно будет...
Levsha100 вне форума Ответить с цитированием
Старый 13.11.2009, 10:36   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...ну и конечно-же будет полезно почитать >> небольшой материальчик << по FTDI
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 13.11.2009, 16:36   #8
luocky
Новичок
Джуниор
 
Регистрация: 12.11.2009
Сообщений: 6
По умолчанию

спасибо, но вопрос не в работе FTDI. Вопрос в том, что такого делает терминалка при инициализации порта, чего не делает моя прога... Из-за чего при первом запуске после включения устройства СОМ порт не инициализуется.
luocky вне форума Ответить с цитированием
Старый 13.11.2009, 16:45   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
спасибо, но вопрос не в работе FTDI. Вопрос в том, что такого делает терминалка при инициализации порта, чего не делает моя прога
- отвечаю:
Код:
dcb.baudrate := cbr_57600;
скорость такая-же как на hyper-терминале?
Код:
setcommstate(com,dcb);
а где же еще установка таймаутов (структура- TCommTimeOuts) и приемного буфера (SetupComm)?

--------------------------------------------
Обращаю ваше внимание на ваш-же вопрос:
Цитата:
В принципе передача идёт, однако етсь НО
при ребуте компа или девайса передача по СОМ рассинхронизируется и передаёт какую-то муть. Чтобы всё встало на место приходится включать, выключать терминалку идальше работа идёт нормально
проблемы возникают при ребуте? или уже не так? (cм. UPD пост #5)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 13.11.2009 в 16:56.
raxp вне форума Ответить с цитированием
Старый 13.11.2009, 16:52   #10
luocky
Новичок
Джуниор
 
Регистрация: 12.11.2009
Сообщений: 6
По умолчанию

Ща вот сижу пробую =)

Последний раз редактировалось luocky; 13.11.2009 в 16:55.
luocky вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СОМ порт JUDAS Win Api 0 10.01.2009 21:27
какая программа испольует СОМ порт? dimonbest Общие вопросы Delphi 2 31.12.2008 14:19
вопрос про СОМ-порт фЁдОр Компьютерное железо 8 29.12.2008 16:04
СОМ порт SERG1980 Общие вопросы Delphi 3 17.05.2007 08:06
СОМ порт IR управление мультимедиа Andr12 Свободное общение 2 10.02.2007 12:07