FT232 и программа на Delphi
Re: программа на delphi для FT232
Спасибо сам разобрался. Просто по неопытности дал кнопке имя, такое-же как и функция. Вот у компилятора "крышу и сдуло". А можно тогда другой вопрос. Так как у FT232R и FT245R внутренний ЕЕПРОМ не трется функцией "FT_EraseEE". То не покажет-ли кто дамп (не епт-файл), от микросхем "чистых с завода"?
Хочу все-таки эту функцию имитировать в своей проге, как-будто стираю.
Хочу все-таки эту функцию имитировать в своей проге, как-будто стираю.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: программа на delphi для FT232
стирание EEPROM - это занесение $FF в каждую её ячейку. Так устроены FLASH-ячейки, в стертом состоянии держат "1", в запрограммированном(есть заряд в ячейке) - "0".
Re: программа на delphi для FT232
Всем доброго времени суток. Ранее делал устройство на ATmega16, отправляющее данные в COM-порт компьютера. Со стороны компьютера работала программа на Delphi, которая принимала и сохраняла полученные данные.
Ныне у меня есть отладочная плата - связка ATmega328 + FT232RL. В случае с прямым подключением меги16 к компу было всё понятно - настроил скорость UART на меге, настроил скорость в программе на компе и всё ОК. А как работать в связке "микроконтроллер-FT232RL-виртуальный COM-порт" мне не понятно. Вдобавок ATmega328 отладочной платы подключена к кварцу 16Мгц. Как настраивать скорости? Предположим, на контроллере я выставляю скорость 250000бот, как такую скорость выставить на компе?
В общем, поясните, как с этим всем работать. 
Ныне у меня есть отладочная плата - связка ATmega328 + FT232RL. В случае с прямым подключением меги16 к компу было всё понятно - настроил скорость UART на меге, настроил скорость в программе на компе и всё ОК. А как работать в связке "микроконтроллер-FT232RL-виртуальный COM-порт" мне не понятно. Вдобавок ATmega328 отладочной платы подключена к кварцу 16Мгц. Как настраивать скорости? Предположим, на контроллере я выставляю скорость 250000бот, как такую скорость выставить на компе?
FT232RL + Delphi 7
Мяу 
Cпаял, подключил переходник USB->COM на основе FT232RL, установил драйвер . Работает , написал небольшую прогу на Delphi для теста связи, как отправлять посылки и принимать я разобрался, все работает. Подергал ножкой RTS, тоже получилось почти сразу. А вот узнать состояние ножек CTS, DSR, RI, DCD не получается
пробовал и +5 на ноги подавать и на GND их сажать, не выходит нечего.
вот так я пишу в Delphi
может кто сталкивался с такой проблемой
Cпаял, подключил переходник USB->COM на основе FT232RL, установил драйвер . Работает , написал небольшую прогу на Delphi для теста связи, как отправлять посылки и принимать я разобрался, все работает. Подергал ножкой RTS, тоже получилось почти сразу. А вот узнать состояние ножек CTS, DSR, RI, DCD не получается
вот так я пишу в 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
скачайте лучше готовую бесплатную библиотеку для работы с СОМ портом (работает в дельфи и 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
поищите:
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), ей нужно и пользоваться.
Re: FT232RL + Delphi 7
Леонид Иванович писал(а):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
Доброго времени суток. Накидал простейшую программу для передачи байта с USB>FT232RL. Для проверки соединил перемычкой пины TXD RXD. но, у вы ничего не получилось
Кто разбирается глянте пожалуйста, подскажите где ошибка или в чем еще может быть проблема.
- Вложения
-
- COM00.rar
- (166.3 КБ) 198 скачиваний
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: FT232RL + Delphi 7
Функция FT_GetModemStatus возвращает только "OK" или код ошибки, а само состояние модемных линий нужно потом читать из переменной FT_Modem_Status.
Re: FT232RL+delphi7
Так в порт ничего не передается. Поэтому и не работает. На вскидку как то так, сейчас уже не помню.
Скачай готовый компонент для работы с com портом и используй его. Будет проще.
Код: Выделить всё
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
Переделал(см. архив). Но все равно не работает, пытаюсь передать число 25 а принимаю 4359820. Причем не важно подключено устроийство к USB или нет....
- Вложения
-
- COM00.rar
- (165.9 КБ) 201 скачивание
Re: FT232RL + Delphi 7
Леонид Иванович писал(а):Функция FT_GetModemStatus возвращает только "OK" или код ошибки, а само состояние модемных линий нужно потом читать из переменной FT_Modem_Status.
Спасибо !
завтра, а точнее сегодня днем попробую
Re: FT232RL + Delphi 7
Леонид Иванович писал(а):Функция FT_GetModemStatus возвращает только "OK" или код ошибки, а само состояние модемных линий нужно потом читать из переменной FT_Modem_Status.
Спасибо ! Работает
- DIMA040891
- Открыл глаза
- Сообщения: 68
- Зарегистрирован: Чт дек 03, 2009 19:55:03
Re: программа на delphi для FT232
Ребята кто может помочь? вопрос ВСЕ ЕЩЕ ОЧЕНЬ АКТУАЛЕН!!!
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: программа на delphi для FT232
Что передаешь, что принимаешь, как это делаешь, ошибки обрабатываешь?
Ага, я так и понял... тебе надо почитать на тему указателей в делфи. и ВНИМАТЕЛЬНО посмотреть на типы параметров WriteFile, ReadFile...
Еще прикалывает CloseHandle(hPort) в обработчике FormCreate...
Короче все ошибки что можно было бы сделать ты благополучно сделал...
открыл порт, настроил и закрыл... и после ЭТОГО пытаешься с ним работать?
еще вопрос на засыпку: чему равен Size при вызове WriteFile, ReadFile ? Это такие простые ошибки, что компилятор исходит от ругательств по поводу возможных ошибок, а ты эти советы упорно игнорируешь.
В твоем случае, переменная Size - локальная и НИКАК НЕ ИНИЦИАЛИЗИРОВАНА, но это еще не приводит к AV потому что сами функции не выполняются т.к. ты им подсовываешь уже не валидный hPort. Они завершаются с ошибкой которую ты тоже игнорируешь.
Ага, я так и понял... тебе надо почитать на тему указателей в делфи. и ВНИМАТЕЛЬНО посмотреть на типы параметров WriteFile, ReadFile...
Еще прикалывает CloseHandle(hPort) в обработчике FormCreate...
Короче все ошибки что можно было бы сделать ты благополучно сделал...
открыл порт, настроил и закрыл... и после ЭТОГО пытаешься с ним работать?
еще вопрос на засыпку: чему равен Size при вызове WriteFile, ReadFile ? Это такие простые ошибки, что компилятор исходит от ругательств по поводу возможных ошибок, а ты эти советы упорно игнорируешь.
В твоем случае, переменная Size - локальная и НИКАК НЕ ИНИЦИАЛИЗИРОВАНА, но это еще не приводит к AV потому что сами функции не выполняются т.к. ты им подсовываешь уже не валидный hPort. Они завершаются с ошибкой которую ты тоже игнорируешь.