FT232 и программа на Delphi

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
witia03
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вс фев 13, 2011 20:51:21
Откуда: Спб

Re: программа на delphi для FT232

Сообщение witia03 »

Magadan69
Открыл глаза
Сообщения: 69
Зарегистрирован: Вт апр 05, 2011 12:46:14

Re: программа на delphi для FT232

Сообщение Magadan69 »

Спасибо сам разобрался. Просто по неопытности дал кнопке имя, такое-же как и функция. Вот у компилятора "крышу и сдуло". А можно тогда другой вопрос. Так как у FT232R и FT245R внутренний ЕЕПРОМ не трется функцией "FT_EraseEE". То не покажет-ли кто дамп (не епт-файл), от микросхем "чистых с завода"?
Хочу все-таки эту функцию имитировать в своей проге, как-будто стираю.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: программа на delphi для FT232

Сообщение Alexeyslav »

стирание EEPROM - это занесение $FF в каждую её ячейку. Так устроены FLASH-ячейки, в стертом состоянии держат "1", в запрограммированном(есть заряд в ячейке) - "0".
Аватара пользователя
guagel
Родился
Сообщения: 5
Зарегистрирован: Чт апр 21, 2011 10:47:48

Re: программа на delphi для FT232

Сообщение guagel »

Всем доброго времени суток. Ранее делал устройство на ATmega16, отправляющее данные в COM-порт компьютера. Со стороны компьютера работала программа на Delphi, которая принимала и сохраняла полученные данные.
Ныне у меня есть отладочная плата - связка ATmega328 + FT232RL. В случае с прямым подключением меги16 к компу было всё понятно - настроил скорость UART на меге, настроил скорость в программе на компе и всё ОК. А как работать в связке "микроконтроллер-FT232RL-виртуальный COM-порт" мне не понятно. Вдобавок ATmega328 отладочной платы подключена к кварцу 16Мгц. Как настраивать скорости? Предположим, на контроллере я выставляю скорость 250000бот, как такую скорость выставить на компе? :) В общем, поясните, как с этим всем работать. :)
Аватара пользователя
servo
Встал на лапы
Сообщения: 88
Зарегистрирован: Вс окт 30, 2011 22:52:51

FT232RL + Delphi 7

Сообщение servo »

Мяу :)

Cпаял, подключил переходник USB->COM на основе FT232RL, установил драйвер . Работает , написал небольшую прогу на Delphi для теста связи, как отправлять посылки и принимать я разобрался, все работает. Подергал ножкой RTS, тоже получилось почти сразу. А вот узнать состояние ножек CTS, DSR, RI, DCD не получается :) пробовал и +5 на ноги подавать и на GND их сажать, не выходит нечего.

вот так я пишу в Delphi

Код: Выделить всё

procedure TForm1.btn_read_pinClick(Sender: TObject);
 var
   I: Integer;
begin
   I:=Get_USB_Device_ModemStatus;
   mmo1.Lines.Add(IntToStr(I));
end;


может кто сталкивался с такой проблемой :)
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: FT232RL + Delphi 7

Сообщение igor-x »

скачайте лучше готовую бесплатную библиотеку для работы с СОМ портом (работает в дельфи и C Builder)
поищите:
ComPort Library
2.63.1

Author information
Name: Dejan Crnila
Year of birth: 1978

Occupation: Student of computer and information science in University of Ljubljana
E-mail: dejancrn@yahoo.com
Home page: http://www2.arnes.si/~sopecrni
Home address: Dolenja vas 111, 3312 Prebold, SLOVENIA
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: FT232RL + Delphi 7

Сообщение Леонид Иванович »

servo писал(а):А вот узнать состояние ножек CTS, DSR, RI, DCD не получается :)


А что это за функция такая Get_USB_Device_ModemStatus? Ftd2xx.dll имеет функцию FT_GetModemStatus(FT_HANDLE ftHandle, ULONG *pModemStatus), ей нужно и пользоваться.
Аватара пользователя
servo
Встал на лапы
Сообщения: 88
Зарегистрирован: Вс окт 30, 2011 22:52:51

Re: FT232RL + Delphi 7

Сообщение servo »

Леонид Иванович писал(а):
servo писал(а):А вот узнать состояние ножек CTS, DSR, RI, DCD не получается :)


А что это за функция такая Get_USB_Device_ModemStatus? Ftd2xx.dll имеет функцию FT_GetModemStatus(FT_HANDLE ftHandle, ULONG *pModemStatus), ей нужно и пользоваться.


вот она...

Код: Выделить всё

Function Get_USB_Device_ModemStatus : FT_Result;
Begin
Result :=  FT_GetModemStatus(FT_Handle,@FT_Modem_Status);
If Result <> FT_OK then FT_Error_Report('FT_GetModemStatus',Result);
End;


мож чего не так делаю?
Аватара пользователя
DIMA040891
Открыл глаза
Сообщения: 68
Зарегистрирован: Чт дек 03, 2009 19:55:03

FT232RL+delphi7

Сообщение DIMA040891 »

Доброго времени суток. Накидал простейшую программу для передачи байта с USB>FT232RL. Для проверки соединил перемычкой пины TXD RXD. но, у вы ничего не получилось :( Кто разбирается глянте пожалуйста, подскажите где ошибка или в чем еще может быть проблема.
Вложения
COM00.rar
(166.3 КБ) 199 скачиваний
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: FT232RL + Delphi 7

Сообщение Леонид Иванович »

Функция FT_GetModemStatus возвращает только "OK" или код ошибки, а само состояние модемных линий нужно потом читать из переменной FT_Modem_Status.
Аватара пользователя
mr_smit
Вымогатель припоя
Сообщения: 651
Зарегистрирован: Пн мар 23, 2009 09:25:58
Откуда: Самара

Re: FT232RL+delphi7

Сообщение mr_smit »

Так в порт ничего не передается. Поэтому и не работает. На вскидку как то так, сейчас уже не помню.

Код: Выделить всё

procedure TForm1.Button2Click(Sender: TObject);
var
Buffer:PChar;
NumberOfBytesReaded:DWord;
begin
WriteFile(hPort, chr('A'), 1, 1, nil);
ReadFile(hPort, Buffer, 1, NumberOfBytesReaded, nil);
label1.Caption:=Buffer;
end;

Скачай готовый компонент для работы с com портом и используй его. Будет проще.
Нельзя всё знать, достаточно понимать.
Аватара пользователя
DIMA040891
Открыл глаза
Сообщения: 68
Зарегистрирован: Чт дек 03, 2009 19:55:03

Re: программа на delphi для FT232

Сообщение DIMA040891 »

Переделал(см. архив). Но все равно не работает, пытаюсь передать число 25 а принимаю 4359820. Причем не важно подключено устроийство к USB или нет....:(
Вложения
COM00.rar
(165.9 КБ) 201 скачивание
Аватара пользователя
servo
Встал на лапы
Сообщения: 88
Зарегистрирован: Вс окт 30, 2011 22:52:51

Re: FT232RL + Delphi 7

Сообщение servo »

Леонид Иванович писал(а):Функция FT_GetModemStatus возвращает только "OK" или код ошибки, а само состояние модемных линий нужно потом читать из переменной FT_Modem_Status.


Спасибо !
завтра, а точнее сегодня днем попробую :)
Аватара пользователя
servo
Встал на лапы
Сообщения: 88
Зарегистрирован: Вс окт 30, 2011 22:52:51

Re: FT232RL + Delphi 7

Сообщение servo »

Леонид Иванович писал(а):Функция FT_GetModemStatus возвращает только "OK" или код ошибки, а само состояние модемных линий нужно потом читать из переменной FT_Modem_Status.


Спасибо ! Работает :)
Аватара пользователя
DIMA040891
Открыл глаза
Сообщения: 68
Зарегистрирован: Чт дек 03, 2009 19:55:03

Re: программа на delphi для FT232

Сообщение DIMA040891 »

Ребята кто может помочь? вопрос ВСЕ ЕЩЕ ОЧЕНЬ АКТУАЛЕН!!!
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: программа на delphi для FT232

Сообщение Alexeyslav »

Что передаешь, что принимаешь, как это делаешь, ошибки обрабатываешь?

Ага, я так и понял... тебе надо почитать на тему указателей в делфи. и ВНИМАТЕЛЬНО посмотреть на типы параметров WriteFile, ReadFile...

Еще прикалывает CloseHandle(hPort) в обработчике FormCreate...

Короче все ошибки что можно было бы сделать ты благополучно сделал...

открыл порт, настроил и закрыл... и после ЭТОГО пытаешься с ним работать?

еще вопрос на засыпку: чему равен Size при вызове WriteFile, ReadFile ? Это такие простые ошибки, что компилятор исходит от ругательств по поводу возможных ошибок, а ты эти советы упорно игнорируешь.
В твоем случае, переменная Size - локальная и НИКАК НЕ ИНИЦИАЛИЗИРОВАНА, но это еще не приводит к AV потому что сами функции не выполняются т.к. ты им подсовываешь уже не валидный hPort. Они завершаются с ошибкой которую ты тоже игнорируешь.
Ответить

Вернуться в «Интеграция с ПК»