Страница 2 из 2

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

Добавлено: Чт янв 05, 2012 10:13:34
witia03

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

Добавлено: Пт янв 06, 2012 04:27:38
Magadan69
Спасибо сам разобрался. Просто по неопытности дал кнопке имя, такое-же как и функция. Вот у компилятора "крышу и сдуло". А можно тогда другой вопрос. Так как у FT232R и FT245R внутренний ЕЕПРОМ не трется функцией "FT_EraseEE". То не покажет-ли кто дамп (не епт-файл), от микросхем "чистых с завода"?
Хочу все-таки эту функцию имитировать в своей проге, как-будто стираю.

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

Добавлено: Пт фев 03, 2012 12:54:55
Alexeyslav
стирание EEPROM - это занесение $FF в каждую её ячейку. Так устроены FLASH-ячейки, в стертом состоянии держат "1", в запрограммированном(есть заряд в ячейке) - "0".

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

Добавлено: Ср май 09, 2012 19:47:08
guagel
Всем доброго времени суток. Ранее делал устройство на ATmega16, отправляющее данные в COM-порт компьютера. Со стороны компьютера работала программа на Delphi, которая принимала и сохраняла полученные данные.
Ныне у меня есть отладочная плата - связка ATmega328 + FT232RL. В случае с прямым подключением меги16 к компу было всё понятно - настроил скорость UART на меге, настроил скорость в программе на компе и всё ОК. А как работать в связке "микроконтроллер-FT232RL-виртуальный COM-порт" мне не понятно. Вдобавок ATmega328 отладочной платы подключена к кварцу 16Мгц. Как настраивать скорости? Предположим, на контроллере я выставляю скорость 250000бот, как такую скорость выставить на компе? :) В общем, поясните, как с этим всем работать. :)

FT232RL + Delphi 7

Добавлено: Ср апр 10, 2013 00:02:41
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;
может кто сталкивался с такой проблемой :)

Re: FT232RL + Delphi 7

Добавлено: Ср апр 10, 2013 06:34:27
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

Re: FT232RL + Delphi 7

Добавлено: Ср апр 10, 2013 07:55:16
Леонид Иванович
servo писал(а):А вот узнать состояние ножек CTS, DSR, RI, DCD не получается :)
А что это за функция такая Get_USB_Device_ModemStatus? Ftd2xx.dll имеет функцию FT_GetModemStatus(FT_HANDLE ftHandle, ULONG *pModemStatus), ей нужно и пользоваться.

Re: FT232RL + Delphi 7

Добавлено: Ср апр 10, 2013 22:13:58
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;
мож чего не так делаю?

FT232RL+delphi7

Добавлено: Ср апр 10, 2013 22:49:31
DIMA040891
Доброго времени суток. Накидал простейшую программу для передачи байта с USB>FT232RL. Для проверки соединил перемычкой пины TXD RXD. но, у вы ничего не получилось :( Кто разбирается глянте пожалуйста, подскажите где ошибка или в чем еще может быть проблема.

Re: FT232RL + Delphi 7

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

Re: FT232RL+delphi7

Добавлено: Чт апр 11, 2013 08:49:59
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 портом и используй его. Будет проще.

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

Добавлено: Чт апр 11, 2013 19:59:38
DIMA040891
Переделал(см. архив). Но все равно не работает, пытаюсь передать число 25 а принимаю 4359820. Причем не важно подключено устроийство к USB или нет....:(

Re: FT232RL + Delphi 7

Добавлено: Пт апр 12, 2013 00:02:29
servo
Леонид Иванович писал(а):Функция FT_GetModemStatus возвращает только "OK" или код ошибки, а само состояние модемных линий нужно потом читать из переменной FT_Modem_Status.
Спасибо !
завтра, а точнее сегодня днем попробую :)

Re: FT232RL + Delphi 7

Добавлено: Вс апр 14, 2013 12:31:17
servo
Леонид Иванович писал(а):Функция FT_GetModemStatus возвращает только "OK" или код ошибки, а само состояние модемных линий нужно потом читать из переменной FT_Modem_Status.
Спасибо ! Работает :)

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

Добавлено: Вс апр 14, 2013 23:38:53
DIMA040891
Ребята кто может помочь? вопрос ВСЕ ЕЩЕ ОЧЕНЬ АКТУАЛЕН!!!

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

Добавлено: Вт апр 16, 2013 14:43:44
Alexeyslav
Что передаешь, что принимаешь, как это делаешь, ошибки обрабатываешь?

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

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

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

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

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