по прежнему не получается
попробовал через массив байт:
Код:
psizeTransferred=^byte;
PSPI_BUFF=^variant;
function ft4222_SPI_send_read(ftHandle:Dword; readBuffer,writeBuffer :PSPI_BUFF; sizeToTransfer : integer; sizeTransferred : psizeTransferred; isEndTransaction : boolean) : FT_Result ; stdcall ; External FT_DLL_Name4222 name 'FT4222_SPIMaster_SingleReadWrite';
procedure TForm1.Button3Click(Sender: TObject);
var
i,k,l:integer;
rx,tx:PSPI_BUFF;
rxs,txs:array [0..255] of byte;//ansistring;
sizeTransferred:psizeTransferred;
begin
FT_HANDLE:=get_handl;
txs[0]:=1;
txs[1]:=2;
txs[2]:=3;
txs[3]:=4;
k:=4;//length(txs);//*SizeOf(Char);
rx:=@rxs;
tx:=@txs;
sizeTransferred:=@l;
//i:=SPI_send_read(serial,rx,tx,k,sizeTransferred);//,sizeTransferred);
i:=ft4222_SPI_send_read(FT_HANDLE,rx,tx,k,sizeTransferred,true);
//form1.Memo1.Lines.Add(bytetostr(rxs[0]));
I:=sizeTransferred^;
form1.Memo1.Lines.Add(inttostr(i));
end;
в случае k:=1 проходит вроде норм, но в приеме не вижу того же значения
если k:=4 то висит
в случае
Код:
rx:=@rxs[0];
tx:=@txs[0];
результат не меняется
кстати говоря вот такой код из qt-creator работает:
Код:
uint16 sizeTransferred;
std::vector<unsigned char> sendBuf;
std::vector<unsigned char> recvBuf;
ft_status = FT4222_SPIMaster_SingleReadWrite(ftHandle,&recvBuf[0],&sendBuf[0], sendBuf.size(), &sizeTransferred, true);
там берется функция через хидер:
LIBFT4222_API FT4222_STATUS FT4222_SPIMaster_SingleReadWrite(FT_HANDLE ftHandle, uint8* readBuffer, uint8* writeBuffer, uint16 bufferSize, uint16* sizeTransferred, BOOL isEndTransaction);