FT232 и программа на Delphi
FT232 и программа на Delphi
Народ помогите написать программу на делфи для приема и передачи данных через микруху FT232. Если есть у кого какие нибуть исходники буду очень рад.
- Callous
- Встал на лапы
- Сообщения: 115
- Зарегистрирован: Вс апр 20, 2008 16:54:13
- Откуда: Украина, Чернигов
не совсем понятно что значит для FT232, просто при подключении устройства к USB через FT232, оно будет подключено к com порт.
А программа пишется как для com порта просто в устройствах надо уточнить его номер.
вот тут посмотри, но там на сях все...
http://www.pcports.ru/Articles.php
А программа пишется как для com порта просто в устройствах надо уточнить его номер.
вот тут посмотри, но там на сях все...
http://www.pcports.ru/Articles.php
Необходима прога работы с ком портом который получается при подключении FT232. Прогу я написал но она на передачу работает но данные не соответствуют(отправленные с компа и полученные с микрухи) и с приемом вообще плохо , ничего принять не могу, может кто на исходники глянет и пнет в нужном направлении.
- sachok
- Опытный кот
- Сообщения: 849
- Зарегистрирован: Сб янв 05, 2008 11:05:15
- Откуда: Україна м.Луцьк
- Контактная информация:
http://radiokot.ru/forum/viewtopic.php?p=255809#255809 тут я выкладывал свою програмку, на выходе FT232 просто замыкал Rx и Tx. Всё работало
Я не Сашок!!!
- Rushack
- Встал на лапы
- Сообщения: 92
- Зарегистрирован: Пн ноя 09, 2009 01:04:57
- Контактная информация:
tviktor, Прицепляй к своей программе Com.pas (во вложениях)
и можешь свободно работать с портом )
Я его во многих проектах использую, багов замечено не было
и можешь свободно работать с портом )
Я его во многих проектах использую, багов замечено не было
- Вложения
-
- Com.pas.zip
- Для работы с портом
- (1.75 КБ) 565 скачиваний
-
- send.zip
- Пример.
- (6.22 КБ) 561 скачивание
Ты должен сделать добро из зла, потому что его больше не из чего сделать.
Р.П. Уоррен
Р.П. Уоррен
- VoLT
- Грызет канифоль
- Сообщения: 265
- Зарегистрирован: Вс июн 08, 2008 23:39:51
- Контактная информация:
Цитата взята с http://www.kaspersky.ru/news?id=207733037
PS У себя нашёл ещё в августе
PS У себя нашёл ещё в августе
"Лаборатория Касперского" обнаружила вирус, заражающий Delphi-приложения на этапе разработки
«Лаборатория Касперского», ведущий производитель систем защиты от вредоносного и нежелательного ПО, хакерских атак и спама, сообщает о появлении вируса Virus.Win32.Induc.a, распространяющегося через интегрированную среду разработки программного обеспечения CodeGear Delphi. Защита от новейшей угрозы уже реализована во всех продуктах «Лаборатории Касперского».
Для своего размножения Virus.Win32.Induc.a использует механизм двушагового создания исполняемых файлов, реализованный в среде Delphi. Согласно данному механизму, исходный код разрабатываемых приложений сначала компилируется в промежуточные .dcu-модули, из которых затем собираются исполняемые в Windows файлы.
Новый вирус активизируется при запуске заражённого им приложения и проверяет, установлен ли на компьютере пакет среды разработки Delphi версий 4.0-7.0. В случае обнаружения пакета, Virus.Win32.Induc.a внедряется в исходный файл базовых констант Delphi Sysconst.pas и компилирует его, в результате чего получается модифицированный откомпилированный файл базовых констант Sysconst.dcu.
Практически каждый проект Delphi включает строчку "use SysConst", поэтому заражение одного системного модуля ведет к инфицированию всех разрабатываемых приложений. Это приводит к тому, что в результате модификации Sysconst.dcu, в дальнейшем все программы, создаваемые в заражённой среде, содержат код нового вируса. Изменённый pas-файл вирусу больше не нужен и удаляется.
В настоящее время вирус не несет функциональной нагрузки помимо самого заражения, скорее он предназначен для демонстрации и тестирования нового вектора заражений. Отсутствие заметной и деструктивной функциональности, инфицирование новым вирусом некоторых версий популярного интернет-пейджера QIP, а также обычная практика публикации .dcu-модулей разработчиками уже привели к широкому распространению Virus.Win32.Induc.a во всем мире. Вполне вероятно, что в будущем он может быть доработан киберпреступниками в сторону увеличения деструктивности.
Проверьте свои установки Delphi (версий с 4 по 7 включительно) и, если найдёте у себя SysConst.bak, выполните следующие действия:
1. Удалите SysConst.dcu
2. Скопируйте SysConst.bak в SysConst.dcu. Важно именно скопировать, а не переименовать, чтобы SysConst.bak тоже остался на диске - это убережёт систему от повторного заражения, т.к. вирус не производит заражения, если находит SysConst.bak, считая, что свою работу он уже выполнил.
Не пытайтесь найти вирус в SysConst.pas: его там НЕТ!
Ft232r
Приобрёл FT232RL. И образовался вопрос. Как с ней работать в режиме bitbang? Дополнительные ножки дёргаю без вопросов. А остальные - не получается...
Программку писал на Delphi.
В листбоксе выбираем устройство...
При нажатии на кнопку подключаемся к выбранному в вышеупомянотуму в листбоксе устройству
При нажатии на кнопку устанавливаем битбанг режим
После этого на ножках как был 0, так и остался....
Программку писал на Delphi.
Код: Выделить всё
procedure TForm1.FormShow(Sender: TObject);
var
i: integer;
My_FT_SerialNo: String;
My_FT_Description: String;
begin
FT_Enable_Error_Report := true; // Включаем сообщения об ошибках (отладка)
DevicePresent := False; // Ни одного устройства типо не подключено
ListBox1.Items.Clear; // Очищаем список подключенных устройств
GetFTDeviceCount;
StaticText1.Caption := 'Найдено ' + IntToStr(FT_Device_Count) + ' устройств(о)(а).';
if FT_Device_Count > 0 then Button1.Enabled := TRUE else Button1.Enabled := FALSE;
В листбоксе выбираем устройство...
Код: Выделить всё
procedure TForm1.ListBox1Click(Sender: TObject);
begin
if ListBox1.ItemIndex >= 0 then Button1.Enabled := TRUE else Button1.Enabled := FALSE;
GetFTDeviceSerialNo(ListBox1.ItemIndex);
Selected_Device_Serial_Number := FT_Device_String;
GetFTDeviceDescription(ListBox1.ItemIndex);
Selected_Device_Description := FT_Device_String;
end;
При нажатии на кнопку подключаемся к выбранному в вышеупомянотуму в листбоксе устройству
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
If Open_USB_Device_By_Serial_Number(Selected_Device_Serial_Number) = FT_OK then begin
Button1.Enabled := FALSE;
Button2.Enabled := TRUE;
StaticText1.Caption := 'Открыто устройство s/n: ' + Selected_Device_Serial_Number;
end;
end;
При нажатии на кнопку устанавливаем битбанг режим
Код: Выделить всё
procedure TForm1.Button3Click(Sender: TObject);
var
i: byte;
j: DWORD;
r: integer;
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('Попытка установить битбанг-режим.');
if FT_OK = Set_USB_Device_BitMode(0, 1) then
Memo1.Lines.Add('Режим 1 (асинхронный) установлен успешно.')
else
Memo1.Lines.Add('Режим 1 (асинхронный) установить не удалось');
FT_Current_Baud := StrToInt(Edit1.Text);
if FT_OK = Set_USB_Device_BaudRate then
Memo1.Lines.Add('Скорость ' + Edit1.Text + ' установлена успешно.')
else
Memo1.Lines.Add('Скорость ' + Edit1.Text + ' установить не удалось.');
end;
Код: Выделить всё
FT_Out_Buffer[0] := 255; // зажжём все ножки
if 1 = Write_USB_Device_Buffer(1) then // Отправляем 1 байт
Memo1.Lines.Add('Передано успешно')
После этого на ножках как был 0, так и остался....
Нашёл ответ...
Сам дошёл...
Если я хочу поставить все ножки на выход, то надо делать так:
А как в первой строке - это все ножки на вход.
Код: Выделить всё
if FT_OK = Set_USB_Device_BitMode(0, 1) thenЕсли я хочу поставить все ножки на выход, то надо делать так:
Код: Выделить всё
if FT_OK = Set_USB_Device_BitMode($FF, 1) thenА как в первой строке - это все ножки на вход.
Rushack писал(а):tviktor, Прицепляй к своей программе Com.pas (во вложениях)
и можешь свободно работать с портом )
Я его во многих проектах использую, багов замечено не было
А как выставить произвольную скорость COM порта??? Например 250000 бит/сек. Чтобы при кварце 16 МГц погрешность USART была 0
Нельзя всё знать, достаточно понимать.
mr_smit писал(а):А как выставить произвольную скорость COM порта???
- Если из программы, то функцией
FT_SetDivisor(FT_Handle ftHandle, USHORT usDivisor) из ftd2xx.dll
(об этом в "D2XX Programmer's Guide" D2XXPG34.pdf)
- Если модификацией свойств виртуального порта, то редактированием
соответствующей секции FTDIPORT.INF
(об этом в "AN232B-05 Configuring FT232R,FT2232 and FT232B Baud Rates" AN232B-05_BaudRates.pdf)
Re: программа на delphi для FT232
Не бейте сразу камнями. Дайте кто-нибудь готовый примерчик, для Делфи как считать из FT232R ЕЕПРОМ в массив (а лучше сразу в бин-файл).
Просто взял за базу исходник готовой программы. Переделал под свои нужды. Юсер Арию писать-читать получилось. А вот функцией "FT_ReadEE", никак не могу воспользоваться. В даташите нет примера на нее. А также на "FT_WriteEE".
Никак не компилируется проект, постоянно останавливается на компиляции этой функции ("FT_ReadEE").
С ошибкой "E2066 Missing operator or semicolon". А если ее отключить, то компилируется, но соответственно не читает ФТ-ху. То-ли переменные надо как-то по особому обзывать, то-ли я чего-то еще не знаю.
Просто взял за базу исходник готовой программы. Переделал под свои нужды. Юсер Арию писать-читать получилось. А вот функцией "FT_ReadEE", никак не могу воспользоваться. В даташите нет примера на нее. А также на "FT_WriteEE".
Никак не компилируется проект, постоянно останавливается на компиляции этой функции ("FT_ReadEE").
С ошибкой "E2066 Missing operator or semicolon". А если ее отключить, то компилируется, но соответственно не читает ФТ-ху. То-ли переменные надо как-то по особому обзывать, то-ли я чего-то еще не знаю.
Re: программа на delphi для FT232
Magadan69 писал(а):Не бейте сразу камнями. Дайте кто-нибудь готовый примерчик, для Делфи как считать из FT232R ЕЕПРОМ в массив (а лучше сразу в бин-файл).
Просто взял за базу исходник готовой программы. Переделал под свои нужды. Юсер Арию писать-читать получилось. А вот функцией "FT_ReadEE", никак не могу воспользоваться. В даташите нет примера на нее. А также на "FT_WriteEE".
Никак не компилируется проект, постоянно останавливается на компиляции этой функции ("FT_ReadEE").
С ошибкой "E2066 Missing operator or semicolon". А если ее отключить, то компилируется, но соответственно не читает ФТ-ху. То-ли переменные надо как-то по особому обзывать, то-ли я чего-то еще не знаю.
на офф сайте есть все исходники
Re: программа на delphi для FT232
witia03 писал(а):на офф ... исходники
Ткните в конкретное название исходника, который считывает еепром через функцию "FT_ReadEE". Буду премного благодарен. Просто я только начал изучать программирование, и пока слабо знаю только Дельфи. С другими языками очень сложно разбираться.
Извините, если посчитаете наглостью.
Или объясните в чем я ошибаюсь?
Код: Выделить всё
//Это уже было в готовом исходнике-----------------------
[color=#00BF00]function FT_ReadEE(ftHandle:DWord; WordAddr:DWord; WordRead:Pointer):FT_Result; stdcall; External FT_DLL_Name name 'FT_ReadEE';
. .
. .
//----------
procedure TForm1.FT_ReadEEClick(Sender: TObject);
var
Addr:dword;
EEReadW:word;
begin
//----------
//Здесь открываю порт
//----------
Addr:=$10; //Допустим адрес $10 считываю
Res:=FT_ReadEE(FT_Handle,Addr,@EEReadW); Останавливается компиллятор здесь
if Res<>0 then // <>
begin //Если не прочлась EEPROM
MessageDlg('FT_ReadEЕ не прочлась ' + DeviceDescription,mtInformation,[mbOK],0);
Exit;
end;
ShowMessage('EEReadW='+inttohex(ord(EEReadW),4));
//----------
//Здесь закрываю порт
//----------
end;